Pandas合并多个无表头CSV文件:如何避免首行被设为表头
解决无表头CSV合并时首行被设为表头的问题
嘿,这个问题我太懂了!pandas的pd.read_csv()默认会把文件第一行当作表头,所以你的第一个CSV首行才会被误识别成列名。要搞定这个超简单,给read_csv()加个header=None参数就行——这个参数会告诉pandas:“我这文件没表头,所有行都是数据!”,它就会自动用0、1、2...这类数字序列作为列名,不会乱把数据行当表头。
修改后的完整代码如下:
import pandas as pd import os dfs = [pd.read_csv(fp, header=None).assign(New=os.path.basename(fp)) for fp in allFiles] out_df = pd.concat(dfs, ignore_index=True) out_df
如果之后你想给这些列设置自定义表头,还能再加个names参数。比如你的CSV有三列数据,想命名为Name、Age、City,可以这么写:
pd.read_csv(fp, header=None, names=['Name', 'Age', 'City'])
这样处理后,合并后的DataFrame就会把所有行都正确加载为数据,再也不会出现首行被当成表头的问题啦。
内容的提问来源于stack exchange,提问作者dark horse
相关产品推荐
相关产品推荐

