Python 如何在数据框中添加列?

Python 如何在数据框中添加列?,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据: 例如: 司机证;时间戳;位置 156;2014-02-01 00:00:00.739166+01;点(41.8836718276551 12.4877775603346) 我想创建一个包含id、时间、经度和纬度4列的熊猫数据框。 到目前为止,我得到: cur_cab = pd.DataFrame.from_csv( path, sep=";", header=None,

我有以下数据:

例如:

司机证;时间戳;位置

156;2014-02-01 00:00:00.739166+01;点(41.8836718276551 12.4877775603346)

我想创建一个包含id、时间、经度和纬度4列的熊猫数据框。 到目前为止,我得到:

cur_cab = pd.DataFrame.from_csv(
            path,
            sep=";",
            header=None,
            parse_dates=[1]).reset_index()
cur_cab.columns = ['cab_id', 'datetime', 'point']
path
指定包含数据的.txt文件。 我已经编写了一个函数,该函数从点格式化字符串返回经度和纬度值。
如何使用附加列和拆分值展开数据框?

加载后,如果您使用的是最新版本的pandas,则可以使用矢量化的
str
方法解析列:

In [87]:
df['pos_x'], df['pos_y']= df['point'].str[6:-1].str.split(expand=True)
df

Out[87]:
   cab_id                   datetime  \
0     156 2014-01-31 23:00:00.739166   

                                      point  pos_x  pos_y  
0  POINT(41.8836718276551 12.4877775603346)      0      1  
此外,您应该停止使用\u csv中的
它不再更新,请使用顶层,以便加载代码:

cur_cab = pd.read_csv(
            path,
            sep=";",
            header=None,
            parse_dates=[1],
            names=['cab_id', 'datetime', 'point'],
            skiprows=1)

添加skiprows有什么特别的原因吗?因为您传递了
header=None
它认为您的头行是数据,所以我们必须跳过该行,这样它就不会将其解析为数据,但实际上我没有头。这就是为什么我首先使用
header=None
)那么这是什么
DRIVER\u ID;时间戳;在您的样本数据中定位
?只是数据集的描述,但我同意这可能会让人困惑:P