簡體   English   中英

如何對熊貓數據框中的列進行子串化

[英]How to substring a column in pandas dataframe

我在熊貓數據框YYYY和MM中有2列。 我想像YYYYMM那樣連接。 但是問題是Mar'2019變成了20193,Oct'2019變成了201910。我不能基於這種輸出進行排序。 我希望所有月份都應有2位數字,如行軍月份應為03,4月如04。

如何正確連接它們?

df['YYYY']=df['Order_Date'].dt.year.astype(str)
df['MM']=df['Order_Date'].dt.month.astype(str)
df['YM'] = df.YYYY + df.MM #(this does not solve problem)

預計201903 201904 201910

實際的20193 20194 201910

使用Series.dt.strftime

df = pd.DataFrame({'Order_Date':pd.date_range('2019-01-01', periods=5 ,freq='m')})

df['YM'] = df['Order_Date'].dt.strftime('%Y%m')
print (df)
  Order_Date      YM
0 2019-01-31  201901
1 2019-02-28  201902
2 2019-03-31  201903
3 2019-04-30  201904
4 2019-05-31  201905

您的解決方案應與Series.str.zfill一起使用:

df['YM'] = (df['Order_Date'].dt.year.astype(str) + 
            df['Order_Date'].dt.month.astype(str).str.zfill(2))
print (df)
  Order_Date      YM
0 2019-01-31  201901
1 2019-02-28  201902
2 2019-03-31  201903
3 2019-04-30  201904
4 2019-05-31  201905

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM