2 回答

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

TA贡献1871条经验 获得超8个赞
在列表推导式中,您将创建 lambda 函数列表。
您所需要的只是首先在列表外部定义 lambda 函数
y=lambda x, ...
然后,在列表理解中调用它。
没有找到匹配的内容?试试慕课网站内搜索吧
添加回答
举报