如何将pandas dataframe按行拆分为多个独立的dataframe
按行拆分DataFrame为单行子DataFrame的实现方案
你之前调用row.to_df()的写法存在两个问题:一是pandas中Series转DataFrame的正确方法是to_frame(),二是直接转换得到的是纵向结构,需要转置后才能匹配你要的横向单行效果。以下是两种可直接落地的实现方式:
方案1:位置索引直接取(推荐,性能更高)
取行时使用双层方括号包裹行索引,直接得到单行DataFrame,无需额外转换:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame([[0,1,2],[3,4,5],[6,7,8]], columns=['a','b','c']) # 拆分所有行存入列表,每个元素都是独立的单行DataFrame df_list = [df.iloc[[i]] for i in range(len(df))]
方案2:适配遍历行的写法
如果已经在使用iterrows()遍历行,只需要对生成的Series做转置处理即可:
df_list = [] for idx, row in df.iterrows(): single_df = row.to_frame().T df_list.append(single_df)
效果验证
遍历打印列表内的子DataFrame即可得到你需要的输出格式:
for single_df in df_list: print(single_df) print("\n")
内容的提问来源于stack exchange,提问作者Gony
相关产品推荐
相关产品推荐

