我想通過將索引和列名組合為鍵,將 Pandas 資料幀轉換為鍵值對字典。有沒有簡單的方法來做到這一點?
前:
T1 T2
apple 5 1
pear 2 1.5
banana 10 12
后:
{'apple_T1': 5,
'apple_T2': 1,
'pear_T1': 2,
...
'banana_T2':12
}
非常感謝!
uj5u.com熱心網友回復:
一步:
{f"{k}_{row}": v for row, data in df.iterrows() for k, v in data.items()}
uj5u.com熱心網友回復:
使用DataFrame.to_dict后跟字典理解:
import pandas as pd
data = [[5, 1], [2, 1.5], [10, 12]]
df = pd.DataFrame(data=data, columns=["T1", "T2"], index=["apple", "pear", "banana"])
result = { f"{kout}_{kin}" : value for kout, d in df.to_dict("index").items() for kin, value in d.items()}
print(result)
輸出
{'apple_T1': 5, 'apple_T2': 1.0, 'pear_T1': 2, 'pear_T2': 1.5, 'banana_T1': 10, 'banana_T2': 12.0}
uj5u.com熱心網友回復:
您可以使用 df.to_dict(orient='index')
設定您的資料框:
df = pd.DataFrame(
columns=["T1", "T2"],
data=[[5,1], [2, 1.5], [10, 12]],
index=["apple", "pear", "banana"]
)
申請.to_dict方法:
d = df.to_dict(orient='index')
result = {f"{k1}_{k2}": v for k1 in d for k2, v in d[k1].items()}
結果:
{'apple_T1': 5,
'apple_T2': 1,
'banana_T1': 10,
'banana_T2': 12,
'pear_T1': 2,
'pear_T2': 1.5}
uj5u.com熱心網友回復:
一種直接的方式是回圈遍歷所有索引和列,并一一定義字典項:
df = pd.DataFrame([[5, 1], [2, 1.5], [10, 12]],
columns=['T1', 'T2'],
index=['apple', 'pear', 'banana'])
new_dict = {}
for i in df.index:
for j in df.columns:
new_dict[i '_' j] = df.loc[i, j]
print(new_dict)
輸出是
{'apple_T1': 5,
'apple_T2': 1.0,
'pear_T1': 2,
'pear_T2': 1.5,
'banana_T1': 10,
'banana_T2': 12.0}
uj5u.com熱心網友回復:
你可以使用,df.iterrows()但你需要小心得到你想要的:
>>> {f'{row}_{k}':v for row, col in df.iterrows() for k,v in list(col.items())[1:]}
{'apple_T1': 5,
'apple_T2': 1.0,
'pear_T1': 2,
'pear_T2': 1.5,
'banana_T1': 10,
'banana_T2': 12.0}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312968.html
