我正在读取pandas中的文件,其中列名不是从第一行开始,而是有data.csv的标题/名称第1行
>>> df = pd.read_csv("data.csv")
>>> df
Unnamed: 0 Unnamed: 1 name Unnamed: 3
0 col1 col2 col3 col4
1 1 2 3 4
2 2 5 4 6
在这种情况下,我如何删除带有标题/名称的行,并确保实际的列名称为col1,col2等。
提前致谢
答案 0 :(得分:1)
考虑到您的数据位于data.csv
,您可以使用以下代码:
df = pd.read_csv("data.csv", skiprows=1)
输出:
col1 col2 col3 col4 Unnamed: 4 Unnamed: 5 Unnamed: 6
0 1 2 3 4 NaN NaN NaN
1 2 5 4 6 NaN NaN NaN
使用
删除不需要的列df = df.dropna(axis=1)
print(df)
输出:
col1 col2 col3 col4
0 1 2 3 4
1 2 5 4 6
正如@jpp指出的那样,您也可以按如下步骤实现这些目标:
df = pd.read_csv("data.csv", skiprows=1, usecols=['col1', 'col2', 'col3', 'col4'])
有关详细信息,请参阅read_csv(),dropna()。
答案 1 :(得分:1)
您可以选择跳过行:
您可以选择要跳过的特定行号或要跳过的行数。如果您使用特定的行号,请将列表传递给skiprows
。在您的情况下,您可以使用以下内容来确定正确读取的内容:
pd.read_csv("data.csv",header=[0], skiprows=[0])
数据:
我使用了以下存储在名为data.csv
的文件中的数据,,name,
0, col1, col2, col3, col4,
1, 1, 2, 3, 4,
2, 2, 5, 4, 6
输出:
0 col1 col2 col3 col4 Unnamed: 5
0 1 1 2 3 4 NaN
1 2 2 5 4 6 NaN
来自文档:
要在文件开头跳过(0索引)或要跳过的行数(int)的行号。
链接到来源:
以下是文档的link供您参考。