如何通过加入 pandas 中的现有列来创建新列
how to make a new column by joining to existing column in pandas
我知道这个问题有很多类似的类型,但我无法通过现有答案找到解决方法。这是一个简单的问题,但我仍然坚持这个小问题。我有一个包含很多列的数据。我想使用两个现有列创建一个新列。像这样:
Index Date Time
0 26-10-2017 06:00:00
1 26-10-2017 06:15:00
2 26-10-2017 06:30:00
现在我需要一个新的列,应该如下所示:
Index Date Time Datetime
0 26-10-2017 06:00:00 26-10-2017 06:00:00
1 26-10-2017 06:15:00 26-10-2017 06:15:00
2 26-10-2017 06:30:00 26-10-2017 06:30:00
我现在无法完全做到这一点。我目前得到一个包含两个字符串值的元组,但我不想要这个:
Index Date Time Datetime
0 26-10-2017 06:00:00 ('26-10-2017', '06:00:00')
1 26-10-2017 06:15:00 ('26-10-2017', '06:15:00')
2 26-10-2017 06:30:00 ('26-10-2017', '06:30:00')
我正在使用以下代码:
df5['Datetime'] = list(zip(df5.Date, df5.Time))
有没有办法让我以我想要的方式获取值,而不是在元组中?
您需要 sum
转换列 Date
to_datetime
and column Time
to_timedelta
:
df.Date = pd.to_datetime(df.Date)
df.Time = pd.to_timedelta(df.Time)
df['Datetime'] = df.Date + df.Time
print (df)
Date Time Datetime
Index
0 2017-10-26 06:00:00 2017-10-26 06:00:00
1 2017-10-26 06:15:00 2017-10-26 06:15:00
2 2017-10-26 06:30:00 2017-10-26 06:30:00
print (df.dtypes)
Date datetime64[ns]
Time timedelta64[ns]
Datetime datetime64[ns]
dtype: object
假设列是字符串,将它们相加并使用 pd.to_datetime
df.assign(DateTime=pd.to_datetime(df.Date + ' ' + df.Time))
Index Date Time DateTime
0 0 26-10-2017 06:00:00 2017-10-26 06:00:00
1 1 26-10-2017 06:15:00 2017-10-26 06:15:00
2 2 26-10-2017 06:30:00 2017-10-26 06:30:00
我知道这个问题有很多类似的类型,但我无法通过现有答案找到解决方法。这是一个简单的问题,但我仍然坚持这个小问题。我有一个包含很多列的数据。我想使用两个现有列创建一个新列。像这样:
Index Date Time
0 26-10-2017 06:00:00
1 26-10-2017 06:15:00
2 26-10-2017 06:30:00
现在我需要一个新的列,应该如下所示:
Index Date Time Datetime
0 26-10-2017 06:00:00 26-10-2017 06:00:00
1 26-10-2017 06:15:00 26-10-2017 06:15:00
2 26-10-2017 06:30:00 26-10-2017 06:30:00
我现在无法完全做到这一点。我目前得到一个包含两个字符串值的元组,但我不想要这个:
Index Date Time Datetime
0 26-10-2017 06:00:00 ('26-10-2017', '06:00:00')
1 26-10-2017 06:15:00 ('26-10-2017', '06:15:00')
2 26-10-2017 06:30:00 ('26-10-2017', '06:30:00')
我正在使用以下代码:
df5['Datetime'] = list(zip(df5.Date, df5.Time))
有没有办法让我以我想要的方式获取值,而不是在元组中?
您需要 sum
转换列 Date
to_datetime
and column Time
to_timedelta
:
df.Date = pd.to_datetime(df.Date)
df.Time = pd.to_timedelta(df.Time)
df['Datetime'] = df.Date + df.Time
print (df)
Date Time Datetime
Index
0 2017-10-26 06:00:00 2017-10-26 06:00:00
1 2017-10-26 06:15:00 2017-10-26 06:15:00
2 2017-10-26 06:30:00 2017-10-26 06:30:00
print (df.dtypes)
Date datetime64[ns]
Time timedelta64[ns]
Datetime datetime64[ns]
dtype: object
假设列是字符串,将它们相加并使用 pd.to_datetime
df.assign(DateTime=pd.to_datetime(df.Date + ' ' + df.Time))
Index Date Time DateTime
0 0 26-10-2017 06:00:00 2017-10-26 06:00:00
1 1 26-10-2017 06:15:00 2017-10-26 06:15:00
2 2 26-10-2017 06:30:00 2017-10-26 06:30:00