【问题标题】:inconsistent index with different periods get just one type不同时期的不一致索引只得到一种类型
【发布时间】:2021-12-01 05:10:06
【问题描述】:

我从网上下载了一个 df,基本上是这样的。我只想保留每日价值的行。有没有可能这样做,所以每次我下载 df 我得到的最后一个每日值?

Date name
21-02-2013 1231
22-02-2013 323
23-02-2013 343
... ...
12-10-2020 432
Monthly
02-2013 2655
03-2013 321
... ...
Yearly
Total 2013 3213
Total 2020 543

【问题讨论】:

    标签: python pandas dataframe datetime indexing


    【解决方案1】:

    您可以在“日期”列上执行regex match;对于给定的示例数据

    df
    Out[10]: 
              Date   name
    0   21-02-2013   1231
    1   22-02-2013    323
    2   23-02-2013    343
    3          ...    ...
    4   12-10-2020    432
    5      Monthly    NaN
    6      02-2013   2655
    7      03-2013    321
    8          ...    ...
    9       Yearly    NaN
    10  Total 2013   3213
    11  Total 2020    543
    

    那就是

    df.loc[df['Date'].str.match('[0-9]{2}\-[0-9]{2}\-[0-9]{4}')]
    Out[11]: 
             Date   name
    0  21-02-2013   1231
    1  22-02-2013    323
    2  23-02-2013    343
    4  12-10-2020    432
    
    # or if you need it to be even more specific:
    # df.loc[df['Date'].str.fullmatch('[0-9]{2}\-[0-9]{2}\-[0-9]{4}')]
    

    【讨论】:

    • 您可能需要fullmatch,具体取决于所需的行为。
    • @HenryEcker 感谢您的提示!将其添加为评论。我认为这取决于 OP 输入的“干净”程度(尾随空格等)什么在这里最有用。
    • @MrFuppes 谢谢!
    • @HenryEcker 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    相关资源
    最近更新 更多