忽略 CSV 中的第一个空格

Kad*_*baz 7 python csv pandas

我有一个这样的 CSV 文件:

Time              Latitude Longitude
2021-09-12 23:13    44.63     -63.56
2021-09-14 23:13    43.78     -62
2021-09-16 23:14    44.83     -54.6
Run Code Online (Sandbox Code Playgroud)

2021-09-12 23:13位于Time列下。

我想用 pandas 打开它。但第一列有问题。它包含一个空格。如果我使用以下命令打开它:

import pandas as pd
points = pd.read_csv("test.csv", delim_whitespace=True) 
Run Code Online (Sandbox Code Playgroud)

我明白了

时间 纬度 经度
2021-09-12 23:13 44.630 -63.560
2021-09-14 23:13 43.780 -62.000
2021-09-16 23:14 44.830 -54.600

但我想跳过 CSV 中第一列的空格(2021-09-12 23:13应该在Time列下),例如:

时间 纬度 经度
0 2021-09-12 23:13 44.630 -63.560
1 2021-09-14 23:13 43.780 -62.000
2 2021-09-16 23:14 44.830 -54.600

使用时如何忽略第一个空格pd.read_csv

请不要坚持使用此 csv 文件。这是一个要跳过(不将其视为分隔符)第一列中的第一个空格的一般问题。因为大家都知道第一个空格是时间值的一部分,而不是分隔符。

Mar*_*ans 1

理想情况下,您应该将前两部分解析为日期时间。通过使用空格作为分隔符,这意味着标题具有三列。不过,日期后面的空格被视为额外的列。

解决方法是完全跳过标题并提供您自己的列名称。该parse_dates参数可用于告诉 Pandas 将前两列解析为单个组合日期时间对象。

例如:

import pandas as pd

points = pd.read_csv("test.csv", delimiter=" ", 
    skipinitialspace=True, skiprows=1, index_col=None, 
    parse_dates=[[0, 1]], names=["Date", "Time", "Latitude", "Longitude"])

print(points)
Run Code Online (Sandbox Code Playgroud)

应该给你以下数据框:

            Date_Time  Latitude  Longitude
0 2021-09-12 23:13:00     44.63     -63.56
1 2021-09-14 23:13:00     43.78     -62.00
2 2021-09-16 23:14:00     44.83     -54.60
Run Code Online (Sandbox Code Playgroud)