花了很长时间试图找到这个,但卡住了.
我有一个日期列(称为"时间"),其中包含天/小时/分钟等(timedelta).我在我的数据框中创建了一个新列,我希望将'Time'列转换为秒,并将其放在每一行的新列中.
有没有人有任何指针?我在互联网上找到的就是如何转换列,而不是创建新列并转换另一列.
先感谢您!
jez*_*ael 27
我想你需要total_seconds:
print (df['col'].dt.total_seconds())
Run Code Online (Sandbox Code Playgroud)
样品:
df = pd.DataFrame({'date1':pd.date_range('2015-01-01', periods=3),
'date2':pd.date_range('2015-01-01 02:00:00', periods=3, freq='23H')})
print (df)
date1 date2
0 2015-01-01 2015-01-01 02:00:00
1 2015-01-02 2015-01-02 01:00:00
2 2015-01-03 2015-01-03 00:00:00
df['diff'] = df['date2'] - df['date1']
df['seconds'] = df['diff'].dt.total_seconds()
print (df)
date1 date2 diff seconds
0 2015-01-01 2015-01-01 02:00:00 02:00:00 7200.0
1 2015-01-02 2015-01-02 01:00:00 01:00:00 3600.0
2 2015-01-03 2015-01-03 00:00:00 00:00:00 0.0
Run Code Online (Sandbox Code Playgroud)
df['diff'] = df['date2'] - df['date1']
df['diff'] = df['diff'].dt.total_seconds()
print (df)
date1 date2 diff
0 2015-01-01 2015-01-01 02:00:00 7200.0
1 2015-01-02 2015-01-02 01:00:00 3600.0
2 2015-01-03 2015-01-03 00:00:00 0.0
Run Code Online (Sandbox Code Playgroud)
如果需要施放到int:
df['diff'] = df['date2'] - df['date1']
df['diff'] = df['diff'].dt.total_seconds().astype(int)
print (df)
date1 date2 diff
0 2015-01-01 2015-01-01 02:00:00 7200
1 2015-01-02 2015-01-02 01:00:00 3600
2 2015-01-03 2015-01-03 00:00:00 0
Run Code Online (Sandbox Code Playgroud)
小智 5
让我们假设您的 DataFrame 的名称是df.
如果你想用秒创建一个新列,你应该执行以下操作:
df['newColumn'] = df['Time'].dt.total_seconds()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33325 次 |
| 最近记录: |