2 回答
![?](http://img1.sycdn.imooc.com/545862370001b03502200220-100-100.jpg)
TA贡献1875条经验 获得超5个赞
首先设置默认值的列'alphabet',然后更改带有数字的列:
df['newcol'] = 'alphabet'
df.loc[df.item_id.str[0].str.isdigit(),'newcol'] = 'number'
如果您更喜欢按照您尝试过的方式进行操作,请按以下步骤操作:
df['newcol'] = ['number' if x[0].isdigit() else 'alphabet' for x in df.item_id]
或等价:
df['newcol'] = ['alphabet' if x[0].isalpha() else 'number' for x in df.item_id]
输出:
item_id value newcol
0 101002 1.008665 number
1 101004 2.025818 number
2 101005 0.530516 number
3 101007 0.732918 number
4 101010 1.787264 number
621 ZB005 3.464102 alphabet
622 ZB007 2.345208 alphabet
623 ZB008 3.464102 alphabet
624 ZBD002 2.592055 alphabet
625 ZBD005 2.373321 alphabet
![?](http://img1.sycdn.imooc.com/545865470001bf9402200220-100-100.jpg)
TA贡献1871条经验 获得超8个赞
在列表推导式中,您将创建 lambda 函数列表。
您所需要的只是首先在列表外部定义 lambda 函数
y=lambda x, ...
然后,在列表理解中调用它。
添加回答
举报