如何根据列名的前3个字符将大数据帧拆分为多个数据帧?

时间:2018-08-29 21:15:36

标签: python string pandas dataframe multiple-columns

我有一个巨大的数据框(2077列),我想分解成多个数据框(准确地是78个)。每个列名称以3个字母的缩写开头(coc,cou,wam等)。如何根据列名的前三个字母将主数据帧拆分为多个较小的数据帧?

先谢谢了。

1 个答案:

答案 0 :(得分:1)

使用lambda调用groupby并遍历组对象以将其分离为DataFrame列表:

df_list = [g for _, g in df.groupby(by=lambda x: x[:3], axis=1)]

如果您想改用{prefix:dataFrame}的映射,则可以创建一个字典:

df_dict = {k: g for k, g in df.groupby(by=lambda x: x[:3], axis=1)}