【问题标题】:python create a column with day and month togetherpython一起创建一个包含日期和月份的列
【发布时间】:2022-01-28 19:35:43
【问题描述】:

您好,我有一个这种类型的日期框架:

    year  month day     Date
0   2015    5   20      2015-05-20
1   2016    6   21      2016-06-21
2   2017    7   22      2017-07-22
3   2018    8   23      2018-08-23
4   2019    9   24      2019-09-24

我以这种方式创建了“年”“月”和“日”列:

df["day"]  = pd.to_datetime(df["Date"]).dt.day
df["month"] = pd.to_datetime(df["Date"]).dt.month
df["year"] = pd.to_datetime(df["Date"]).dt.year

现在我想创建一个带有月份和日期的第 5 列,并将它们变成一个字符串

我试过了:

df["daymonth"] = str(df["day"]) + " " + str(df["month"])

但是我好像得到了一个矩阵,你有什么建议吗?

【问题讨论】:

    标签: python pandas dataframe date datetime


    【解决方案1】:

    如果其中一列(或两列)不是字符串类型,则应先转换(它们):

    df["daymonth"] = df["day"].astype(str) + " " + df["month"].astype(str)
    

    【讨论】:

    • 谢谢,我不知道str()和astype(str)的区别
    【解决方案2】:

    你可以dt.strftime

    df['d-m'] = df.Date.dt.strftime('%d %m')
    

    修复你的代码

    df["day"].astype(str) + " " + df["month"].astype(str)
    

    【讨论】:

      【解决方案3】:

      你也可以使用这样的东西:

      df['d-m'] = df['Date'].apply(lambda x: str(x.day) + ' ' + str(x.month))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-07
        • 1970-01-01
        • 2018-10-15
        • 1970-01-01
        • 1970-01-01
        • 2019-08-13
        • 2021-11-26
        • 1970-01-01
        相关资源
        最近更新 更多