我的剧本里有一件很烦人的事,我不知道怎么了。当我试图过滤我的数据框,然后向newone添加行,我想导出到excel时,就会发生这种情况。你知道吗
文件导出为空DF,同时print显示“report”为空,但当我尝试打印时报表名称, 报表.值等,我得到了正常和适当的输出元素。另外,我只能导出一列到excel,而不是整个DF,看起来像空的。。。。是什么导致了那场奇怪的事故?你知道吗
这是我的剧本:
df = pd.read_excel('testfile2.xlsx')
report = pd.DataFrame(columns=['Type','Name','Value'])
for index, row in df.iterrows():
if type(row[0]) == str:
type_name = row[0].split(" ")
if type_name[0] == 'const':
selected_index = index
report['Type'].loc[index] = type_name[1]
report['Name'].loc[index] = type_name[2]
report['Value'].loc[index] = row[1]
else:
for elements in type_name:
report['Value'].loc[selected_index] += " " + elements
elif type(row[0]) == float:
df = df.drop(index=index)
print(report) #output - Empty DataFrame
print(report.Name) output - over 500 elements
您试图操纵一个不存在的序列,从而导致所描述的行为。你知道吗
用一个更简单的例子来做你所做的,我得到了同样的结果:
简单的解决方案:只需添加整行,而不是三个单独的值:
或者在代码中:
如果您想以与当前相同的方式执行此操作,则首先需要将具有给定索引的空序列添加到数据帧中,然后才能对其进行操作:
相关问题 更多 >
编程相关推荐