python中脚本遍历数据时遇到int错误,如何解决?
我对以下代码有问题:python中脚本遍历数据时遇到int错误,如何解决?,python,excel,pandas,dataframe,csv,Python,Excel,Pandas,Dataframe,Csv,我对以下代码有问题: for root, dirs, files in os.walk('path2v1'): for file in files: if file.endswith('train.csv'): combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames]) combined_csv.to_csv("combined_csv.c
for root, dirs, files in os.walk('path2v1'):
for file in files:
if file.endswith('train.csv'):
combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames])
combined_csv.to_csv("combined_csv.csv",index=False, encoding='utf-8-sig')
它正在返回错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-14-b0f594f68181> in <module>
8 combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames])
9
---> 10 combined_csv.to_csv("combined_csv.csv",index=False, encoding='utf-8-sig')
11
AttributeError: 'int' object has no attribute 'to_csv'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
8 combined_csv=pd.concat([pd.read_csv(f)表示所有文件名中的f])
9
--->10组合式csv到组合式csv(“组合式csv,索引=False,编码=utf-8-sig”)
11
AttributeError:“int”对象没有“to_csv”属性
昨天它对我来说很好,但由于某种原因,今天我意识到了这些错误。你知道为什么会发生这种情况吗?我在这里做一些假设,但我想你应该这样做:
combined_csv = pd.concat([pd.read_csv(file)
for _,_,files in os.walk('path2v1')
for file in files if file.endswith('train.csv')])
combined_csv.to_csv("combined_csv.csv",index=False, encoding='utf-8-sig')
根据@acushner的评论,创建了一个数据帧列表,然后连接起来生成数据帧。我在这里做了一些假设,但我认为您希望这样做:
combined_csv = pd.concat([pd.read_csv(file)
for _,_,files in os.walk('path2v1')
for file in files if file.endswith('train.csv')])
combined_csv.to_csv("combined_csv.csv",index=False, encoding='utf-8-sig')
根据@acushner的评论,将创建一个数据帧列表,然后连接成数据帧。在执行
combined_csv.to_csv(“combined_csv.csv”,index=False,encoding='utf-8-sig')之前,请尝试打印combined_csv的值
该错误表示组合的\u csv
不是数据帧。此外,您可能希望将combined_csv
制作成一个empy数据帧,然后在循环中附加到它,因为每次文件以train结尾时,您都将它重新定义为一个新的数据帧。csv@EMiller你绝对不想这样做。每次附加到数据帧都会重新分配整个数据帧。他们应该做的是在end@acushner,很好。我的评论主要是为了传达OP在后续迭代中通过在数据帧上写入来擦除数据。在执行combined_csv.to_csv(“combined_csv.csv”,index=False,encoding='utf-8-sig')之前,请尝试打印combined_csv的值
该错误表示组合的\u csv
不是数据帧。此外,您可能希望将combined_csv
制作成一个empy数据帧,然后在循环中附加到它,因为每次文件以train结尾时,您都将它重新定义为一个新的数据帧。csv@EMiller你绝对不想这样做。每次附加到数据帧都会重新分配整个数据帧。他们应该做的是在end@acushner,很好。我的评论主要是为了传达OP在后续迭代中通过在数据帧上写入来擦除数据。感谢您花时间提供帮助。我从这段代码中得到了以下错误:1个组合的_csv=pd.concat([pd.read_csv(file)-->2个用于,os.walk('path2v1')中的文件3个用于文件中的文件如果file.endswith('.csv')])4个组合的_csv.to_csv(“组合的_csv.csv”,index=False,encoding='utf-8-sig'))/concat中的opt/anaconda3/envs/PST_env/lib/python3.7/site-packages/pandas/core/reforme/concat.py(对象、轴、连接、忽略索引、键、级别、名称、验证完整性、排序、复制)279验证完整性=验证完整性,280复制=复制,-->281排序=排序,282)283~/opt/anaconda3/envs/PST_env/lib/python3.7/site-packages/pandas/core/reformate/concat.py in uuuuu init_uuuuuuuuu(self、objs、axis、join、keys、levels、names、ignore_index、verify_uintegrity、copy、sort)327328如果len(objs)==0:->->329 raise ValueError(“没有要连接的对象”)330 331如果键为None:ValueError:No objects to concatenate很可能,因为找不到任何文件,所以没有要连接的对象。请尝试以下操作:```files=[file for、、files in os.walk('path2v1')for file in files if file.endswith('train.csv')]``文件列表中是否有条目?感谢您花时间提供帮助。我从这段代码中得到了以下错误:1个组合的_csv=pd.concat([pd.read_csv(file)-->2个用于,os.walk('path2v1')中的文件3个用于文件中的文件如果file.endswith('.csv')])4个组合的_csv.to_csv(“组合的_csv.csv”,index=False,encoding='utf-8-sig'))/concat中的opt/anaconda3/envs/PST_env/lib/python3.7/site-packages/pandas/core/reforme/concat.py(对象、轴、连接、忽略索引、键、级别、名称、验证完整性、排序、复制)279验证完整性=验证完整性,280复制=复制,-->281排序=排序,282)283~/opt/anaconda3/envs/PST_env/lib/python3.7/site-packages/pandas/core/reformate/concat.py in uuuuu init_uuuuuuuuu(self、objs、axis、join、keys、levels、names、ignore_index、verify_uintegrity、copy、sort)327328如果len(objs)==0:->->329 raise ValueError(“没有要连接的对象”)330 331如果键为None:ValueError:No objects to concatenate很可能,因为找不到任何文件,所以没有要连接的对象。请尝试以下操作:```files=[file for、、files in os.walk('path2v1')for file in files if file.endswith('train.csv')]``在文件列表中是否有条目?