我的数据框由StoreId组成,需要针对特定类型的商店进行更改:
StoreType StoreId
A 105
A 213
B 401
B 402
B 711
B 910
B 913
B 915
在此数据框中,仅对于storeType = B,如果要使用其他任何StoreID,则如果storeId以4开头(例如401应该更改为01,402应该更改为02),我想摆脱所有4。在storetype = B的情况下,没有这种逻辑,因此需要对其进行硬编码,例如711应该更改为I0、910到801、913到804、915到814。
如何在python中使用pandas数据框架编写高效的代码?
答案 0 :(得分:1)
您可以在此处使用简单的正则表达式以及where
来仅更改在其他系列中找到B
的列。
u = df.StoreId.astype(str)
df.assign(StoreId=u.where(df.StoreType.ne('B'), u.str.replace('^4', '')))
StoreType StoreId
0 A 105
1 A 213
2 B 01
3 B 02
4 B 711
5 B 910
6 B 913
7 B 915