Pandas 將DataFrame的年月組合到一起

這幾天洗數據的時候碰到一個問題,原數據裏面的year和month還有Day是分開的,現在要將這兩列聚合成一列

import pandas as pd
import numpy as np
df_a = pd.DataFrame([[2019, 4, 1], [2019, 10, 13]], columns=['Year', 'Month', 'Day'])

先新建一個測試用的dataframe

然後上處理代碼

# 先處理月份
df_m_s = df_a[df_a['Month'] < 10].copy()
df_m_b = df_a[df_a['Month'] >= 10].copy()
df_m_s['YearMonth'] = df_m_s['Year'].astype(str) + ('0' + df_m_s['Month'].astype(str))
df_m_b['YearMonth'] = df_m_b['Year'].astype(str) + df_m_b['Month'].astype(str)
df_m = pd.concat([df_m_s, df_m_b])
if 'Day' in df_a.columns:
    # 再處理日
    df_d_s = df_m[df_m['Day'] < 10].copy()
    df_d_b = df_m[df_m['Day'] > 10].copy()
    df_d_s['YearMonthDay'] = df_d_s['YearMonth'].astype(str) + ('0' + df_d_s['Day'].astype(str))
    df_d_b['YearMonthDay'] = df_d_b['YearMonth'].astype(str) + df_d_b['Day'].astype(str)
    df_d = pd.concat([df_d_s, df_d_b])

結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章