我有一个DataFrame
有 18 列和大约 10000 行的熊猫。
我的前 3 列分别为YEAR
、MONTH
和DAY
. 我需要合并这三列,并将所有行的整个日期放在一列中。
到目前为止,我的代码是:
df.merge('Year','/','Month')
我有一个DataFrame
有 18 列和大约 10000 行的熊猫。
我的前 3 列分别为YEAR
、MONTH
和DAY
. 我需要合并这三列,并将所有行的整个日期放在一列中。
到目前为止,我的代码是:
df.merge('Year','/','Month')
In [1]: from pandas import DataFrame
In [2]: df = DataFrame([[1,11,2012],[1,10,2012]], columns=['day','month','year'])
In [3]: df
Out[3]:
day month year
0 1 11 2012
1 1 10 2012
In [4]: df.apply(lambda row: str(row['day'])+'/'+str(row['month'])+'/'+str(row['year']), axis=1)
Out[4]:
0 1/11/2012
1 1/10/2012
该axis=1
部分意味着您正在选择列而不是行。
如果你想给出一个具体的日期,你可以使用 datetime:
In [5]: import datetime
In [6]: df.apply(lambda row: datetime.datetime(row['year'],row['month'],row['day']), axis=1)
Out[6]:
0 2012-11-01 00:00:00
1 2012-10-01 00:00:00
您可以将这些添加为数据框中的列,如下所示:
In [7]: df['new_date'] = df.apply(lambda row: str(row['day'])+'/'+str(row['month'])+'/'+str(row['year']), axis=1)
In [8]: df
Out[8]:
day month year new_date
0 1 11 2012 1/11/2012
1 1 10 2012 1/10/2012
.
值得注意的是,pandasparse_dates
在读取为 csv 时有一种简单的方法。