我有一個與此類似的 Pandas DataFrame:
0 1
0 Index S&P 500
1 MarketCap 1712
2 Income 26
3 Sales 442
我的最終目標是將第 0 列作為字典中的鍵,然后將第 1 列作為值(例如 dict = {"Index": "S&P500", "MarketCap: "1712"}
非常感謝任何幫助,我對 Pandas/Python 很陌生,并且一直在參考這個檔案但沒有任何進展。
這是我目前擁有的代碼(正在抓取資料):
import pandas as pd
import requests
BASE_URL = "https://finviz.com/quote.ashx?t=AMZN"
HEADER = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Firefox/91.0"}
response = requests.get(BASE_URL, headers=HEADER)
result = pd.read_html(response.text)
parsed = result[5]
uj5u.com熱心網友回復:
使用to_dict:
>>> parsed.set_index(0)[1].to_dict()
{'Index': 'S&P 500',
'Market Cap': '1712.86B',
'Income': '26.26B',
'Sales': '457.96B',
'Book/sh': '237.80',
'Cash/sh': '156.81',
'Dividend': '-',
'Dividend %': '-',
'Employees': '1335000',
'Optionable': 'Yes',
'Shortable': 'Yes',
'Recom': '1.70'}
uj5u.com熱心網友回復:
做就是了:
dict(df.values)
例子:
df = pd.DataFrame(data={0: ["Index", "MarketCap", "Income", "Sales"], 1:["S&P 500", "1712", "26", "442"]})
dd = dict(df.values)
df:
0 1
0 Index S&P 500
1 MarketCap 1712
2 Income 26
3 Sales 442
輸出:
{'Index': 'S&P 500', 'MarketCap': '1712', 'Income': '26', 'Sales': '442'}
為了使其與 OP 資料一起作業:
cols = [0,1]
df = parsed[cols]
dict(df.values)
uj5u.com熱心網友回復:
您可以創建一個字典并遍歷您的資料框列0,1
并將0值分配為鍵和1值
ans = {}
for idx in parsed.index:
if parsed[0][idx] not in ans:
ans[parsed[0][idx]] = parsed[1][idx]
print(ans)
輸出:
{'Index': 'S&P 500', 'Market Cap': '1712.86B', 'Income': '26.26B', 'Sales': '457.96B', 'Book/sh': '237.80', 'Cash/sh': '156.81', 'Dividend': '-', 'Dividend %': '-', 'Employees': '1335000', 'Optionable': 'Yes', 'Shortable': 'Yes', 'Recom': '1.70'}
uj5u.com熱心網友回復:
我們有多種選擇來做同樣的事情,你可以嘗試這兩種方式。
- DataFrame.iterrows()
- DataFrame.itertuples()
例子:
import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print (df)
#With iterrows method
for index, row in df.iterrows():
print(row["c1"], row["c2"])
#With itertuples method
for row in df.itertuples(index=True, name='Pandas'):
print(row.c1, row.c2)
現在,您可以使用值來創建Dict或List根據您的要求。
注意: itertuples() 應該比 iterrows() 快
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/387637.html
上一篇:DataFrame對列的劃分
下一篇:索引錯誤和屬性錯誤
