如何将DataFrame的每一列拆分为独立的DataFrame并组成列表?
把多列DataFrame拆分为单个列DataFrame列表的方法
嘿,我懂你现在的困扰——想把一个3列的DataFrame拆成三个独立的DataFrame并放进列表里,之前用split函数没搞对,还得到一堆空DataFrame对吧?其实split函数根本不是干这个活的,它是用来拆分字符串列的(比如把一列里的逗号分隔字符串拆成多列),所以用错工具啦!下面给你两种简单靠谱的方法:
方法1:列表推导式(最直观)
直接遍历原DataFrame的列名,每次取单个列(注意用双重括号[[col]],这样返回的是DataFrame而不是Series),把它们收集到列表里就行:
import pandas as pd # 先创建一个示例DataFrame(你可以替换成自己的) df = pd.DataFrame({ '列1': [10, 20, 30], '列2': ['a', 'b', 'c'], '列3': [True, False, True] }) # 拆分列成单个DataFrame列表 single_df_list = [df[[col]] for col in df.columns] # 看看结果 for idx, df_item in enumerate(single_df_list): print(f"第{idx+1}个DataFrame:") print(df_item) print("---")
方法2:利用items()方法遍历列
pandas的items()方法会返回每个列的名称和对应的Series数据,我们把每个Series转成DataFrame就行:
single_df_list = [pd.DataFrame(col_data) for _, col_data in df.items()]
这里的_是占位符,用来接收列名(因为我们不需要列名,只需要数据),col_data就是每一列的Series,用pd.DataFrame()转成单个列的DataFrame。
这两种方法都能轻松得到你想要的3个DataFrame的列表,再也不会出现空DataFrame的问题啦!
内容的提问来源于stack exchange,提问作者Maya Gosztyla
相关产品推荐
相关产品推荐

