gpt4 book ai didi

python - append 在 for 循环中创建的数据帧

转载 作者:行者123 更新时间:2023-12-01 07:39:10 26 4
gpt4 key购买 nike

当我将 for 循环生成的数据帧写入 Excel 文件时,只有最后一行被写入 Excel 文件。我尝试连接数据帧,因为每次迭代都会创建一个新的数据帧,然后将其写入 Excel 文件。

所以本质上我想做的是,在将数据帧写入 Excel 文件之前,成功地将它们连接到一个数据帧中。我无法使用 pd.ExcelWriter 单独编写它们,因为我可能有 100 个功能名称

def CCC_90(df_1,x):
for i in x:
print('------------------------------------------------------------------------------------------------------------------- ')
feature_num =(df_1.iloc[[i]])
feature_num_correct = (feature_num + 21)
print(feature_num_correct)

writer = pd.ExcelWriter('No3_dVSa.xlsx', engine='xlsxwriter')
appended_data = []
for j in feature_num:
feature_name = dfFeaturename.iloc[[j]]
appended_data.append(feature_name)

appended_data = pd.concat(appended_data)

appended_data.to_excel(writer, sheet_name='Sheet1',startrow=1)
writer.save()

最佳答案

每次在 Outlook 循环迭代中都会覆盖 Excel 文件。这意味着电子表格中仅保存最后一次迭代。

要解决此问题,请在外部循环之前创建编写器,并将连接的数据帧保存在循环外部的电子表格中。

此外,起始行设置为 1,因此将从工作表的开头开始写入。它必须根据 append 数据帧中的行数进行更新。

def CCC_90(df_1,x):
writer = pd.ExcelWriter('No3_dVSa.xlsx', engine='xlsxwriter')
startrow = 1

for i in x:
# ...
appended_data.to_excel(writer, sheet_name='Sheet1', startrow=startrow)
startrow = len(appended_data)
writer.save()

还有一件事取决于 x 是否是索引列表,您可以使用该列表iloc来获取包含列表中的行的数据帧并重构循环。

def CCC_90(df_1,x):
writer = pd.ExcelWriter('No3_dVSa.xlsx', engine='xlsxwriter')
# the next line should result in a dataframe with
# a column containing the feature numbers say fc
feature_nums = df_1.iloc[x]

# getting the feature names is more direct
feature_names = dfFeaturename.iloc[feature_nums.fc.tolist()]
feature_names.to_excel(writer, sheet_name='Sheet1', startrow=1)
write.save()

关于python - append 在 for 循环中创建的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56811571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com