删除pandas输入文件的行。

时间:2018-04-30 13:22:26

标签: python pandas

我正在读取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等。

提前致谢

2 个答案:

答案 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供您参考。