将原始日期转换为熊猫年,月/日

时间:2019-09-23 19:43:31

标签: python pandas numpy datetime

我有一个Pandas数据框,其原始日期格式为“ 19990130”。我想将它们转换为新列:“年”,“月”和“星期几”。

我尝试使用以下内容:

    string SqlConn = ConfigurationManager.ConnectionStrings["Sql28"].ConnectionString;
    SqlConnection sqlcon = new SqlConnection(SqlConn);
    sqlcon.Open();

    SqlCommand cmd = new SqlCommand();
    cmd.Connection = sqlcon;
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = HttpContext.Current.Session["sql"].ToString();

    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataTable employees = new DataTable();
    adapter.Fill(employees);

    gv.DataSource = employees;
    gv.DataBind();

    Cache.Insert("GridData", employees, null, System.Web.Caching.Cache.NoAbsoluteExpiration,new TimeSpan(0, 360000, 0));

哪个确实给了我一组日期时间对象。但是,我尝试的下一个步骤是使用.to_pydatetime(),然后使用.year来尝试得出年份,就像这样:

pd.to_datetime(df['date'], format='%Y%m%d', errors='ignore').values

当我测试单个值但使用Pandas数据框时,此方法有效。我得到:

pd.to_datetime(df['date'], format='%Y%m%d', errors='ignore').values.to_pydatetime().year

从此数据中提取年,月和日的最简单方法是什么?

1 个答案:

答案 0 :(得分:2)

尝试:

s = pd.to_datetime(df['date'], format='%Y%m%d', errors='coerce')

s.dt.year
# or
# s.dt.month, etc