Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正在删除输入文件的行。_Python_Pandas - Fatal编程技术网

Python 正在删除输入文件的行。

Python 正在删除输入文件的行。,python,pandas,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

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


提前感谢

考虑到您的数据位于
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
   col1 col2 col3 col4
0   1    2    3     4
1   2    5    4     6
用鼠标删除不需要的列

df = df.dropna(axis=1)
print(df)
输出:

    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
   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'])

有关更多信息,请参阅。

考虑到您的数据位于
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
   col1 col2 col3 col4
0   1    2    3     4
1   2    5    4     6
用鼠标删除不需要的列

df = df.dropna(axis=1)
print(df)
输出:

    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
   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'])
有关更多信息,请参阅。

您可以选择跳过行:

您可以选择要跳过的特定行号或要跳过的行数。如果使用特定的行号,则将列表传递给
skiprows
。在您的情况下,您可以使用以下方法确保正确阅读某些内容:

pd.read\u csv(“data.csv”,header=[0],skiprows=[0])

数据:

我使用了存储在名为data.csv的文件中的以下数据

>>> 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
,,name,
0,       col1,       col2,  col3,       col4,
1,          1,          2,     3,          4,
2,          2,          5,     4,          6
输出:

    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
   col1 col2 col3 col4
0   1    2    3     4
1   2    5    4     6
从文档中:

文件开头要跳过的行号(0索引)或要跳过的行数(int)

链接到来源:

以下是文档的一部分,供您参考。

您可以选择跳过行:

您可以选择要跳过的特定行号或要跳过的行数。如果使用特定的行号,则将列表传递给
skiprows
。在您的情况下,您可以使用以下方法确保正确阅读某些内容:

pd.read\u csv(“data.csv”,header=[0],skiprows=[0])

数据:

我使用了存储在名为data.csv的文件中的以下数据

>>> 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
,,name,
0,       col1,       col2,  col3,       col4,
1,          1,          2,     3,          4,
2,          2,          5,     4,          6
输出:

    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
   col1 col2 col3 col4
0   1    2    3     4
1   2    5    4     6
从文档中:

文件开头要跳过的行号(0索引)或要跳过的行数(int)

链接到来源:


这是文档的一个示例,供您参考。

有一个
skiprows
参数要-大概您只需要
skiprows=1
有一个
skiprows
参数要-大概您只需要
skiprows=1
您运行了代码吗
pd.read\u csv(“data.csv”,header=[0],skiprows=[0])
加载所有要成为
NaN的值
如果进行向下投票,请留下评论,以便我可以改进我的响应。@HarvIpan我添加了一个更具体的编辑,但我对回答中包含的语法没有任何问题。并非所有文件都有不需要的行。我有逻辑来检查行是否不需要。我必须读取/加载csv两次(检查不需要的行数,然后使用skiprows重新加载)。这可以避免吗?你运行代码了吗
pd.read\u csv(“data.csv”,header=[0],skiprows=[0])
加载所有要成为
NaN的值
如果进行向下投票,请留下评论,以便我可以改进我的响应。@HarvIpan我添加了一个更具体的编辑,但我对回答中包含的语法没有任何问题。并非所有文件都有不需要的行。我有逻辑来检查行是否不需要。我必须读取/加载csv两次(检查不需要的行数,然后使用skiprows重新加载)。这可以避免吗?如果有其他不需要的列,最好在
pd.read\u csv
中使用
usecols
参数。如果有其他不需要的列,最好在
pd.read\u csv
中使用
usecols
参数。