【问题标题】:Why isn't the format of each dataframe changing by date?为什么每个数据框的格式不按日期更改?
【发布时间】:2020-04-30 14:53:02
【问题描述】:

我有一个有序的字典:

OrderedDict([('Sheet1',       name newdate
          0  rob  3-2020
          1     will  2-2020
          2    john  1-2020), ('Sheet2',      name newdate
          0  william  1-2020
          1  tim  2-2020
          2   james  3-2020), ('Sheet3',       name newdate
          0    eric  5-2020
          1  jim  4-2020
          2     evan  6-2020)])

我尝试运行此代码以将日期列更改为日期格式并获取数据帧从最早到最新的顺序:

for sheet, df in company_dict.items():
df['newdate'] = pd.to_datetime(df['newdate'])
df = df.sort_values(by="newdate")

我明白了:

OrderedDict([('Sheet1',       name    newdate
          0  rob 2020-03-01
          1     will 2020-02-01
          2    john 2020-01-01), ('Sheet2',      name    newdate
          0  william 2020-01-01
          1  tim 2020-02-01
          2   james 2020-03-01), ('Sheet3',       name    newdate
          0    eric 2020-05-01
          1  jim 2020-04-01
          2     evan 2020-06-01)])

日期是日期格式,但每个 df 中的顺序没有改变

我正在寻找它的样子:

OrderedDict([('Sheet1',       name    newdate
          0  john 2020-01-01
          1     will 2020-02-01
          2    rob 2020-03-01), ('Sheet2',      name    newdate
          0  william 2020-01-01
          1  tim 2020-02-01
          2   james 2020-03-01), ('Sheet3',       name    newdate
          0    jim 2020-04-01
          1  eric 2020-05-01
          2     evan 2020-06-01)])

有什么想法吗?

【问题讨论】:

  • 您是否要对 OrederedDict 的数据框进行排序?
  • orderedDict 由三个数据帧组成。我正在尝试按日期列更改每个数据框的顺序,但它不起作用

标签: python-3.x pandas numpy dataframe date


【解决方案1】:

修改目录内容为df只是dataframe的副本

for sheet, _ in company_dict.items():
    company_dict[sheet]['newdate'] = pd.to_datetime(company_dict[sheet]['newdate'])
    company_dict[sheet] = company_dict[sheet].sort_values(by="newdate")

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 2019-01-20
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    相关资源
    最近更新 更多