PAT*_*EAS 6 python string datetime timestamp pandas
我有一个带有纪元时间戳的 DataFrame,我想创建一个带有格式化日期字符串的新列。
index timestamp
0 1456407930
1 1456407945
2 1456407961
3 1456407977
4 1456407992
5 1456408008
6 1456408024
7 1456408040
8 1456408055
9 1456408071
10 1456408087
11 1456408102
Run Code Online (Sandbox Code Playgroud)
首先,我使用成功将时间戳转换为日期时间格式
data['date_num'] = mdate.epoch2num(data['timestamp'])
Run Code Online (Sandbox Code Playgroud)
但是我没有找到一个函数来获取一个字符串格式为 date 的新列(such as “%Y-%m-%d”)。
我会很感激任何想法吗?帕特里西奥
指定unit='s'用pd.to_datetime。然后使用pd.Series.dt.strftime.
df['date'] = pd.to_datetime(df['timestamp'], unit='s')\
.dt.strftime('%Y-%m-%d')
print(df)
index timestamp date
0 0 1456407930 2016-02-25
1 1 1456407945 2016-02-25
2 2 1456407961 2016-02-25
3 3 1456407977 2016-02-25
4 4 1456407992 2016-02-25
5 5 1456408008 2016-02-25
6 6 1456408024 2016-02-25
7 7 1456408040 2016-02-25
8 8 1456408055 2016-02-25
9 9 1456408071 2016-02-25
10 10 1456408087 2016-02-25
11 11 1456408102 2016-02-25
Run Code Online (Sandbox Code Playgroud)
您可以map通过传递lambda表达式作为参数来使用方法。
df['new_column'] = df['timestamp'].map(lambda val: datetime.datetime.fromtimestamp(val).strftime('%Y-%m-%d'))
Run Code Online (Sandbox Code Playgroud)
输出
timestamp new_column
0 1456407930 2016-02-25
1 1456407945 2016-02-25
-------------------------
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3708 次 |
| 最近记录: |