亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為與正則表達式模式匹配的數據幀分配特定的 id

為與正則表達式模式匹配的數據幀分配特定的 id

慕雪6442864 2023-08-08 17:15:29
需要為每個符合以下條件的數據幀分配一個特定的IDfd = df[(df['B'].str.match('.*Color:.*') | df['B'].str.match('.*colorFUL:.*')) & df.A.isnull()]fd2 = df[(df['B'].str.match('.*Type:.*')) & df.A.isnull()]在輸出文件中,兩個數據幀都被寫在另一個數據幀的下面。需要添加列 C,其中 ID“1”分配給 fd,ID“2”分配給 fd2。這將有助于過濾數據幀。這是當前的輸出A   Bnan this has Color:Rednan Color: Blue,red, greennan Color: Yellownan This has many colors. Color: green, red, Yellownan Filter oil Type: Synthetic Motor oilnan Oil Type : High Mileage Motor oil預期輸出A   B   Cnan this has Color:Red  1nan Color: Blue,red, green  1nan Color: Yellow   1nan This has many colors. Color: green, red, Yellow 1nan Filter oil Type: Synthetic Motor oil    2nan Oil Type : High Mileage Motor oil   2
查看完整描述

1 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

添加新列 C 并根據與正則表達式匹配的數據幀為該列分配 ID“1”或“2”。


In [17]: df

Out[17]: 

    A                                                B

0 NaN                               this has Color:Red

1 NaN                           Color: Blue,red, green

2 NaN                                    Color: Yellow

3 NaN  This has many colors. Color: green, red, Yellow

4 NaN             Filter oil Type: Synthetic Motor oil

5 NaN                Oil Type : High Mileage Motor oil

您構造了兩個條件:


In [18]: one = (df['B'].str.match('.*Color:.*') | df['B'].str.match('.*colorFUL:.*')) & df.A.isnull()


In [19]: one

Out[19]: 

0     True

1     True

2     True

3     True

4    False

5    False

dtype: bool


In [20]: two = (df['B'].str.match('.*Type:.*')) & df.A.isnull()


In [21]: two

Out[21]: 

0    False

1    False

2    False

3    False

4     True

5    False

dtype: bool

這是制作新專欄的一種方法。


In [22]: df['C'] = 0

使用條件的布爾系列根據這些條件分配值。


In [23]: df.loc[one,'C'] = 1


In [24]: df.loc[two,'C'] = 2


In [25]: df

Out[25]: 

    A                                                B  C

0 NaN                               this has Color:Red  1

1 NaN                           Color: Blue,red, green  1

2 NaN                                    Color: Yellow  1

3 NaN  This has many colors. Color: green, red, Yellow  1

4 NaN             Filter oil Type: Synthetic Motor oil  2

5 NaN                Oil Type : High Mileage Motor oil  0

如果 df 是輸入數據幀,fd 是與模式匹配的輸出數據幀,如何直接將 id 分配給 fd 而不進行布爾檢查


fd = df.loc[one]

fd['C'] = 1


查看完整回答
反對 回復 2023-08-08
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號