1 回答
![?](http://img1.sycdn.imooc.com/54584f8f00019fc002200220-100-100.jpg)
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成为一个简单的字典,则需要进行一些小的更改,或者您可以将其转换 - 但这不应该是一个问题。
添加回答
举报