Python 正在删除输入文件的行。
我正在读取pandas中的文件,这些文件的列名不是以第一行开头,而是data.csv的标题/名称第1行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
>>> 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
参数。