如何将*.csv文件加载为列名按顺序编号的Pandas DataFrame?
解决Pandas加载CSV时使用顺序编号列名的问题
没问题,这事儿很容易搞定!你现在遇到的情况是pd.read_csv()默认把CSV的第一行当作列名,咱们只需要调整几个参数就能换成顺序编号的列名,分两种场景给你方案:
场景1:CSV的第一行是数据(而非表头)
如果你的CSV里没有单独的表头行,第一行就是实际数据,那直接用header=None参数告诉Pandas“这个文件没有表头”,它会自动给列分配从0开始的数字编号:
import pandas as pd # 加载CSV,不将第一行视为表头 map1 = pd.read_csv('data001.csv', header=None) print(map1)
要是你想要更清晰的列名格式(比如带前缀的col_0, col_1...),可以手动设置列名:
map1.columns = [f'col_{i}' for i in range(map1.shape[1])]
场景2:CSV的第一行是旧表头(你想替换成编号)
如果你的CSV有旧表头行,但你不想用它,想跳过这一行并使用编号列名,就加上skiprows=1参数跳过旧表头,再配合header=None:
import pandas as pd # 跳过第一行旧表头,同时不设置新表头(用编号代替) map1 = pd.read_csv('data001.csv', skiprows=1, header=None) # 同样可以自定义列名格式 map1.columns = [f'column_{i}' for i in range(map1.shape[1])] print(map1)
关键参数说明
header=None:强制Pandas不读取任何行作为表头,所有行都视为数据,默认列名是0、1、2...skiprows=1:跳过文件的第一行(适合旧表头需要丢弃的情况)- 自定义列名:用列表推导式根据列的数量生成任意格式的编号列名,灵活度很高
内容的提问来源于stack exchange,提问作者JRR
相关产品推荐
相关产品推荐

