如何按每行拆分 pandas 数据帧,并包含创建的每个新数据帧的标头



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

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

当前数据弗兰姆的外观示例:

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

我想创造什么:

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

使用 iloc 的列表理解

l = [df.iloc[[i], :] for i in range(len(df))]
print(l[0])
    x   y   z
0   1   4   5

注意:由于我们从单行创建数据帧,df.iloc[i, :] 将返回一个系列,而 df.iloc[[i], :] 将返回一个数据帧。

使用 DataFrame.iterrows 创建列表推导式。列表中的每个元素都是一行数据帧,标头包括:

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

或者,字典理解,键是原始数据帧中的索引:

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

像这样循环访问数据帧:

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

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

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

最新更新