[英]Create a dictionary from pandas dataframe
我有以下代码
pd.DataFrame(index=["A", "A", "B","B","B"], columns=["col1","col2","col3"],
data=np.array([[5,3,5],[8,6,4],[8,6,4],[2,7,6],[8,6,4]]))
这导致以下数据帧
col1 col2 col3
A 5 3 5
A 8 6 4
B 8 6 4
B 2 7 6
B 8 6 4
我想用它创建一个字典,键是 A 和 B,值是带有其余数据的数据框。 例如对于 A 值应该是如下所示的数据框。
col1 col2 col3
5 3 5
8 6 4
使用带有groupby
和DataFrame.reset_index
字典理解作为默认索引:
d = {k:v.reset_index(drop=True) for k, v in df.groupby(level=0)}
print (d)
{'A': col1 col2 col3
0 5 3 5
1 8 6 4, 'B': col1 col2 col3
0 8 6 4
1 2 7 6
2 8 6 4}
print (d['A'])
col1 col2 col3
0 5 3 5
1 8 6 4
如果不需要更改索引值,则可以使用:
d = dict(tuple(df.groupby(level=0)))
print (d['A'])
col1 col2 col3
A 5 3 5
A 8 6 4
但这就像使用DataFrame.loc
选择原始数据DataFrame.loc
:
print (df.loc['A'])
col1 col2 col3
A 5 3 5
A 8 6 4
设置:
df = pd.DataFrame(index=["A", "A", "B","B","B"],
columns=["col1","col2","col3"],
data=np.array([[5,3,5],[8,6,4],[8,6,4],[2,7,6],[8,6,4]]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.