【问题标题】:Create new column with day of week using datetime使用日期时间创建带有星期几的新列
【发布时间】:2021-09-02 17:33:14
【问题描述】:

我正在尝试在此 DataFrame 中使用星期几的名称创建一个新列,但我做不到。有人有什么建议吗?


from datetime import date

days = [
  'Segunda-feira',
  'Terça-feira',
  'Quarta-feira',
  'Quinta-feira',
  'Sexta-feira',
  'Sábado',
  'Domingo'
  ]

import pandas as pd

vacinacao = pd.read_excel("vacinacao_br.xlsx")
vacinacao.head()

UF  Data Vacinacao  quantidade
0   AC  2021-01-18 00:00:00 1
1   AC  2021-01-19 00:00:00 46
2   AC  2021-01-20 00:00:00 1021
3   AC  2021-01-21 00:00:00 1609
4   AC  2021-01-22 00:00:00 1105

vacinacao['dia_semana'] = vacinacao['Data Vacinacao'].days.weekday.()

AttributeError: 'Series' object has no attribute 'days'

【问题讨论】:

    标签: python pandas database dataframe datetime


    【解决方案1】:

    你想要dt而不是days

    试试:

    #for day number (0, 1, etc.)
    vacinacao['dia_semana'] = vacinacao['Data Vacinacao'].dt.weekday
    
    #for day full name (Monday, Tuesday, etc.)
    vacinacao['dia_semana'] = vacinacao['Data Vacinacao'].dt.strftime("%A")
    
    #for day short name (Mon, Tue, etc.)
    vacinacao['dia_semana'] = vacinacao['Data Vacinacao'].dt.strftime("%a")
    

    【讨论】:

      【解决方案2】:

      使用 .weekday() 整数从您的日期列表中查找:

      vacinacao['Data Vacinacao'] = pd.to_datetime(vacinacao['Data Vacinacao'],
                                                   format="AC %Y-%m-%d %H:%M:%S")
      vacinacao['dia_semana'] = [days[i.weekday()] for i in vacinacao['Data Vacinacao']]
      

      【讨论】:

        【解决方案3】:

        假设您的“Data Vacinado”列的dtype 是某种daytime,您可以使用dt.day_name

        vacinacao['dia_semana'] = vacinacao['Data Vacinacao'].dt.day_name()
        

        注意:如果您的列的 dtypestr,您必须先将日期转换为 datetime 对象:

        vacinacao['Data Vacinacao'] = pd.to_datetime(vacinacao['Data Vacinacao'], format="%Y-%m-%d")
        

        【讨论】:

          猜你喜欢
          • 2020-12-09
          • 2020-12-14
          • 1970-01-01
          • 1970-01-01
          • 2021-03-25
          • 2018-09-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多