如何按每一行拆分熊猫数据框,并为创建的每个新数据框包含标头?

时间:2019-04-09 18:50:14

标签: python pandas dataframe spyder

Python的新手。 如何按每一行拆分数据框并创建一个包含标题的新数据框。

我的最终目标是使用docx库将从数据框创建的数据表放入word中。

当前datafranme的外观示例:

x y z
1 4 5
4 2 4
3 5 5

我要创建的内容:

x y z
1 4 5

x y z
4 2 4

4 个答案:

答案 0 :(得分:3)

在iloc中使用列表理解

l = [df.iloc[[i], :] for i in range(len(df))]

print(l[0])

    x   y   z
0   1   4   5

注意:由于我们是从单个行创建一个DataFrame,因此df.iloc [i,:]将返回一个序列,而df.iloc [[i],:]将返回一个DataFrame。

答案 1 :(得分:1)

使用DataFrame.iterrows创建列表理解。列表中的每个元素将是一行DataFrame,包括标题:

frame_list = [pd.DataFrame([x]) for i, x in df.iterrows()]

或者是dict理解,键是原始DataFrame的索引:

frame_dict = {i:pd.DataFrame([x]) for i, x in df.iterrows()}

答案 2 :(得分:0)

您可以像这样遍历DataFrame:

for idx, row in df.iterrows():
    _df = pd.DataFrame([row])
    # Add your processing here

答案 3 :(得分:0)

您可以执行此操作,然后将数据写入docx。

   data = []
    for index, row in df.iterrows():
        data.append(df.columns.values)
        data.append(row.tolist())