1 回答

TA貢獻1825條經驗 獲得超6個贊
聽起來這就是你所追求的:
import pandas as pd
from collections import defaultdict
df = pd.DataFrame([
{0: 'reviewers#0', 1: 1.0, 2: 2.0, 3: 3.0},
{0: 'reviewers#1', 1: 4.0, 2: 5.0, 3: 6.0},
{0: 'confiscated#0', 1: 7.0, 2: 8.0, 3: 9.0},
{0: 'confiscated#1', 1: 10.0, 2: 11.0, 3: 12.0},
])
print(df)
result = defaultdict(list)
for _, values in df.iterrows():
values = list(values)
result[int(values[0].split('#')[1])] += [values[1:]]
print(result)
結果:
0 1 2 3
0 reviewers#0 1.0 2.0 3.0
1 reviewers#1 4.0 5.0 6.0
2 confiscated#0 7.0 8.0 9.0
3 confiscated#1 10.0 11.0 12.0
defaultdict(<class 'list'>, {0: [[1.0, 2.0, 3.0], [7.0, 8.0, 9.0]], 1: [[4.0, 5.0, 6.0], [10.0, 11.0, 12.0]]})
即數據框具有您描述的結構,result字典是您需要的結果嗎?
如果您需要defaultdict成為一個簡單的字典,則需要進行一些小的更改,或者您可以將其轉換 - 但這不應該是一個問題。
添加回答
舉報