2
我想從Pandas數據框中製作單個字典,其中N列中的每行指向在單列中的值,並想知道是否有一種有效的方法來做到這一點,而無需構建一堆for循環和字典更新。將Pandas數據框轉換爲N對1字典,其中N列是指向單個列的鍵作爲值
例如,是一個更具編程/ Pandas'y的方式來完成以下內容。
import pandas as pd
columns = ["A", "B", "C"]
data = [[1, 11, 111],
[2, 22, 222],
[3, 33, 333]]
df = pd.DataFrame(data=data, columns=columns)
df
Out[1]:
A B C
0 1 11 111
1 2 22 222
2 3 33 333
mdict = {}
for c in df.columns:
mdict.update(dict(zip(df[c], df['A'])))
mdict
Out[2]:
{1: 1, 2: 2, 3: 3, 11: 1, 22: 2, 33: 3, 111: 1, 222: 2, 333: 3}
我最終想要創建的鍵長字典中的所有指回相同的值,這樣我可以去到另一個數據框和運用地圖功能,規範的條目。這本字典是否甚至需要一步,還是有一種更簡單的方法來完成此操作,而無需通過中級字典?謝謝!
df2 = pd.DataFrame(data=[1, 11, 111, 2, 22, 222, 3, 33, 333], columns=['D'])
df2['D'] = df2['D'].map(mdict)
df2
Out[3]:
D
0 1
1 1
2 1
3 2
4 2
5 2
6 3
7 3
8 3
正是我在找的,謝謝! – StuckOnDiffyQ
@StuckOnDiffyQ太棒了!不要忘記投票並接受。謝謝。 –