python - 如何仅从时间戳中提取日期?

标签 python pandas dataframe

我有这样的数据框:

df = pd.DataFrame({
    'timestamp': ['2017-06-04 07:59:42', '2017-06-04 07:59:42',
                  '2017-06-04 07:59:42', '2017-06-04 07:59:42',
                  '2017-06-04 07:59:42'],
    'municipality_id': [9, 8, 4, 0, 7],
    'usage': [454, 556, 1090, 204, 718],
    'total_capacity': [1332, 2947, 3893, 2813, 2019]
})
<表类="s-表"> <头> 时间戳 municipality_id 用法 总容量 <正文> 2017-06-04 07:59:42 9 454 1332 2017-06-04 07:59:42 8 556 2947 2017-06-04 07:59:42 4 1090 3893 2017-06-04 07:59:42 0 204 2813 2017-06-04 07:59:42 7 718 2019

那么如何获取第一列每一行的前十个字符,例如:

0    2017-06-04
1    2017-06-04
2    2017-06-04
3    2017-06-04
4    2017-06-04

最佳答案

从您的 csv 文件中,有多种方法可以提取日期

方法 1:parse_dates 来自 read_csv:

df = pd.read_csv('data.csv', parse_dates=['timestamp'])
df['date'] = df['timestamp'].dt.date

方法 2:to_datetime:

df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['timestamp']).dt.date

方法三:str[]

df = pd.read_csv('data.csv')
df['date'] = df['timestamp'].str[:10]

每个方法的输出是:

>>> df['date']
1        2017-06-04
2        2017-06-04
3        2017-06-04
4        2017-06-04
            ...    
13065    2017-08-19
13066    2017-08-19
13067    2017-08-19
13068    2017-08-19
13069    2017-08-19
Name: date, Length: 13070, dtype: object

关于python - 如何仅从时间戳中提取日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69420227/

相关文章:

python - 一次使用 openerp one2many 列表中的表单和 TreeView

python Pandas : Find Sum of Column Based on Value of Two other Columns

python - Pandas - 选择具有最佳值的行

python - 如何填写行中给定条件的列的平均值

python - Pandas 子字符串 DataFrame 列

python - 使用 Ipython 调用 pylab 的 GUI 请求无效

python - 用python计算现有库存

python - Scipy稀疏...数组?

r - 即使 data.frame 为空,如何安全地替换 data.frame 中的值?

r - 列配对统计检验