【发布时间】:2018-04-28 01:48:33
【问题描述】:
我有一个数据框,其中列名共享一个公共元素,其他列已生成并带有该公共元素的后缀。我有一个大约 100 个条目的这些元素的列表。我想使用此列表迭代地切片大 df,通过分组转换子 df,并最终将它们连接在一起。
我正在考虑使用字典方法——使用列表作为键,然后将共享此元素的列定义为值。我不确定如何实现这一点。我复制了一个简化版本来说明我想扩大规模。实际上,大约有 100 个键,每个键有 20 个关联的列。
A A_1 A_2 A_3 B B_1 B_2 B_3
0 1 e f g 1 x y z
1 2 e f g 2 x y z
2 3 e f g 3 x y z
3 3 e f g 3 x y z
4 3 e f g 4 x y z
5 3 e f g 4 x y z
df_list = ['A','B']
df_A = df[df.columns[df.columns.to_series().str.contains('A')]]
df_B = df[df.columns[df.columns.to_series().str.contains('B')]]
calc_A = df_A.groupby(['A']).head(1)
print(calc_A)
A A_1 A_2 A_3
0 1 e f g
1 2 e f g
2 3 e f g
calc_B = df_B.groupby(['B']).head(1)
print(calc_B)
B B_1 B_2 B_3
0 1 x y z
1 2 x y z
2 3 x y z
4 4 x y z
请告知如何构建此字典,遍历列表以切片 df 并将共享键的列分配为新子 df 的值。谢谢你。
【问题讨论】:
标签: python pandas dictionary dataframe pandas-groupby