給定一個 DataFrame df:
id items
0 1 CRB Spot Index: Grease: First 2 Months: YoY
1 2 CRB Spot Index: Textiles
2 3 CRB Spot Index: Livestock
3 4 Korea: Export Value: First 10 Days: YoY
4 5 Korea: Export Value: First 20 Days: YoY
5 6 Korea: Import Value: First 20 Days: YoY
6 7 Korea: Import Value: First 10 Days: YoY
7 8 Vietnam: Import Value: First 2 Weeks: MoM
8 9 Vietnam: Import Value: First 3 Weeks: MoM
我想過濾匹配模式的專案:First integer Days或First integer Weeks,然后創建一個新列來指示它們:
id items indicator
0 1 CRB Spot Index: Grease: First 2 Months: YoY NaN
1 2 CRB Spot Index: Textiles NaN
2 3 CRB Spot Index: Livestock NaN
3 4 Korea: Export Value: First 10 Days: YoY Y
4 5 Korea: Export Value: First 20 Days: YoY Y
5 6 Korea: Import Value: First 20 Days: YoY Y
6 7 Korea: Import Value: First 10 Days: YoY Y
7 8 Vietnam: Import Value: First 2 Weeks: MoM Y
8 9 Vietnam: Import Value: First 3 Weeks: MoM Y
我怎么能用 Pandas 做到這一點?
我使用df.loc[(df['items'].str.contains('First|Days', na=False)) & (df['items'].str.contains('First|Weeks', na=False)), 'indicators']='Y',它不會產生如上所示的預期結果,也許還有其他更簡潔的答案。
uj5u.com熱心網友回復:
檢查正則運算式 match First,然后檢查\s 空格,然后檢查\d 整數,\s 再檢查空格,最后Days|Weeks檢查Daysor Weeks:
df.loc[df['items'].str.contains('First\s \d \s Days|Weeks', na=False), 'indicators']='Y'
print (df)
id items indicators
0 1 CRB Spot Index: Grease: First 2 Months: YoY NaN
1 2 CRB Spot Index: Textiles NaN
2 3 CRB Spot Index: Livestock NaN
3 4 Korea: Export Value: First 10 Days: YoY Y
4 5 Korea: Export Value: First 20 Days: YoY Y
5 6 Korea: Import Value: First 20 Days: YoY Y
6 7 Korea: Import Value: First 10 Days: YoY Y
7 8 Vietnam: Import Value: First 2 Weeks: MoM Y
8 9 Vietnam: Import Value: First 3 Weeks: MoM Y
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431704.html
標籤:python-3.x 熊猫 数据框
上一篇:R資料框中的滾動條件ifelse
