Python 如何按每行拆分数据帧,并为创建的每个新数据帧包含标题?
Python新手。 如何按每行分割数据帧,并创建一个包含标题的新数据帧 我的最终目标是使用docx库将数据表(从dataframe创建)放入word中 当前datafranme的外观示例: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.
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
?感谢这一点-它将数据显示为一个列表,但我想为每个集合创建表。这可能吗?可能是的。试一试。谢谢-它以列表的形式显示数据,但我想为每个集合创建表。这可能吗?可能是的。试试看。