47898


日付データから、月、日にちのデータを作成したく、次のようなコードを準備しています。

[code]

    import re
    import pandas as pd
    import datetime
    
    df = pd.DataFrame(
        {'x': ['Fri, 10 Mar 2017 23:58:00 GMT',
               'Sat, 11 Mar 2017 05:33:42 GMT',
               'Sat, 18 Mar 2017 04:51:13 GMT']})
    
    
    date = pd.to_datetime(df["x"])
    
[/code]

このデータから、次のようなデータフレームを作成したいのですが、  
ここから先に難渋しており、どなたか、ご教示して頂けると、ありがたいです。。  
よろしくお願いします。

[code]

    year  month   date
    2017    3       10
    2017    3       11
    2017    3       18
    
[/code]


CC BY-SA 4.0
2018-08-29T00:12:10.730
47894
2018-08-29T02:01:59.607
20148
question
python pandas
日付データから、月、日にちのデータを作成したい


頂いたコメントを元に、コードを作成したところ、できました。  
コードを添付します。

[code]

    import re
    import pandas as pd
    import datetime
    
    df = pd.DataFrame(
        {'x': ['Fri, 10 Mar 2017 23:58:00 GMT',
               'Sat, 11 Mar 2017 05:33:42 GMT',
               'Sat, 18 Mar 2017 04:51:13 GMT']})
    
    
    df['Date'] = pd.to_datetime(df["x"])
    
    df['Year'] = pd.DatetimeIndex(df['Date']).year
    df['Month'] = pd.DatetimeIndex(df['Date']).month
    df['Day'] = pd.DatetimeIndex(df['Date']).day
    
    print(df)
    
[/code]


CC BY-SA 4.0
2018-08-29T00:37:00.983
47895
2018-08-29T00:37:00.983
20148
47894
answer


`Series.dt`を使って

[code]

    result = pd.DataFrame()
    result['year'] = date.dt.year
    result['month'] = date.dt.month
    result['day'] = date.dt.day
    
[/code]


CC BY-SA 4.0
2018-08-29T00:58:54.880
47896
2018-08-29T00:58:54.880
15171
47894
answer


こんな書き方もできます

[code]

    import pandas as pd
    
    df = pd.DataFrame(
        {'x': ['Fri, 10 Mar 2017 23:58:00 GMT',
               'Sat, 11 Mar 2017 05:33:42 GMT',
               'Sat, 18 Mar 2017 04:51:13 GMT']})
    
    date_df = pd.to_datetime(df["x"]).apply(lambda d: pd.Series([d.year,d.hour,d.day], index=['Year','Month','Day']))
    
    print(date_df)
    #   Year  Month  Day
    #0  2017     23   10
    #1  2017      5   11
    #2  2017      4   18
    
[/code]


CC BY-SA 4.0
2018-08-29T02:01:59.607
47898
2018-08-29T02:01:59.607
24801
47894
answer