【问题标题】:formatting unique dates in a database with Pandas Python使用 Pandas Python 格式化数据库中的唯一日期
【发布时间】:2021-12-22 09:36:36
【问题描述】:

我怎样才能编写一个代码,它只为data.csv 中的每个给定日期提供一个输出。我想选择第一个日期值作为唯一行并删除所有其他日期值,就像它在预期输出中的显示方式一样。3 行的日期值为2021-10-31 13:17:00,它选择第一个日期值并忽略休息。我怎样才能做到这一点?

代码:

data = pd.read_csv('data.csv')
dates= pd.to_datetime(data['Date'].to_list())

data.csv 文件内容:

Date,Symbol,Open,High,Low,Close,Volume
2021-10-31 13:16:00,BTCUSD,60568.0,60640.0,60568.0,60638.0,3.9771881707839967
2021-10-31 13:15:00,BTCUSD,60620.0,60633.0,60565.0,60568.0,1.3977284440628714
2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4357009185659157
2021-10-31 13:17:00,BTCUSD,60648.0,60650.0,60638.0,60638.0,0.42475009155665155
2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4564009185659157
2021-10-31 13:16:00,BTCUSD,60588.0,60620.0,60510.0,60618.0,3.9771881707839967

预期输出:

Date,Symbol,Open,High,Low,Close,Volume
2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4357009185659157
2021-10-31 13:16:00,BTCUSD,60568.0,60640.0,60568.0,60638.0,3.9771881707839967
2021-10-31 13:15:00,BTCUSD,60620.0,60633.0,60565.0,60568.0,1.3977284440628714

【问题讨论】:

  • drop_duplicates.

标签: python pandas database csv datetime


【解决方案1】:

我们先sort_values 然后drop_duplicates

out = df.sort_values('Date',ascending=False).drop_duplicates('Date')
Out[44]: 
                  Date  Symbol     Open     High      Low    Close    Volume
2  2021-10-31 13:17:00  BTCUSD  60638.0  60640.0  60636.0  60638.0  0.435701
0  2021-10-31 13:16:00  BTCUSD  60568.0  60640.0  60568.0  60638.0  3.977188
1  2021-10-31 13:15:00  BTCUSD  60620.0  60633.0  60565.0  60568.0  1.397728

【讨论】:

    猜你喜欢
    • 2021-06-06
    • 2021-11-07
    • 1970-01-01
    • 2010-12-04
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多