Python 如何按每行拆分数据帧,并为创建的每个新数据帧包含标题?

Python 如何按每行拆分数据帧,并为创建的每个新数据帧包含标题?,python,pandas,dataframe,spyder,Python,Pandas,Dataframe,Spyder,Python新手。 如何按每行分割数据帧,并创建一个包含标题的新数据帧 我的最终目标是使用docx库将数据表(从dataframe创建)放入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 使用DataFrame.iterrows创建列表理解。列表中的每个元素都是一行数据框,包括标题: frame_list = [pd.DataFrame([x]) for i, x in df.

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

我的最终目标是使用docx库将数据表(从dataframe创建)放入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

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

frame_list = [pd.DataFrame([x]) for i, x in df.iterrows()]
或者是dict理解,键是原始数据帧的索引:

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

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

frame_list = [pd.DataFrame([x]) for i, x in df.iterrows()]
或者是dict理解,键是原始数据帧的索引:

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

将列表理解与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],:]将返回一个数据帧。

将列表理解与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],:]将返回一个数据帧。

您可以像这样在数据帧上迭代:

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

您可以像这样迭代数据帧:

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

您可以这样做,然后将数据写入docx

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

您可以这样做,然后将数据写入docx

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

为什么每个人都在使用
iterrows
?为什么每个人都在使用
iterrows
?感谢这一点-它将数据显示为一个列表,但我想为每个集合创建表。这可能吗?可能是的。试一试。谢谢-它以列表的形式显示数据,但我想为每个集合创建表。这可能吗?可能是的。试试看。