繁体   English   中英

从熊猫数据帧创建字典

[英]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

使用带有groupbyDataFrame.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM