如何在Pandas中处理CSV:删除标题行并设置正确列名
解决Pandas读取CSV时列名不在第一行的问题
针对你遇到的情况——CSV第一行是标题描述,第二行才是实际列名,有两种简单的处理方式,推荐第一种更高效的方法:
方法一:读取时直接指定列名行(推荐)
Pandas的read_csv函数提供了header参数,可以直接指定哪一行作为DataFrame的列名。因为你的实际列名在第二行(从0开始计数是行号1),所以只需要设置header=1即可:
import pandas as pd df = pd.read_csv("data.csv", header=1)
执行后你会得到正确的DataFrame:
col1 col2 col3 col4 0 1 2 3 4 1 2 5 4 6
这个参数的作用是:告诉Pandas跳过前header行之前的所有行(这里跳过行0,也就是第一行标题),然后用行1的值作为列名,直接读取后续的真实数据。
方法二:已读取错误DataFrame后的修正
如果你已经执行了默认的pd.read_csv("data.csv")得到了错误的DataFrame,也可以事后调整:
# 把第一行(索引0)的内容设置为新的列名 df.columns = df.iloc[0].tolist() # 删除原来的第一行,并重置索引 df = df.drop(df.index[0]).reset_index(drop=True)
这样操作后同样能得到结构正确的DataFrame。
内容的提问来源于stack exchange,提问作者Bharat Sharma
相关产品推荐
相关产品推荐

