我有一个包含两列 number
和 type
的 df。如果 type
为 odd
,我会尝试删除奇数位置的数字。
对于数字 - (7,14,21,28)
,在奇数
位置没有数字 - 7,21
。
同样 - (3,10,17,24,31)
在奇数
位置没有数字 - 3,17,31
df
df= pd.DataFrame(data = {'number' : ['7,14,21,28', '2', '3,6,5,8 ', '4', '3,10,17,24,31'], 'day' : ['odd', 'even', 'even', 'even', 'odd']})
number type
0 7,14,21,28 odd
1 2 even
2 3,6,5,8 even
3 4 even
4 3,10,17,24,31 odd
我的异常输出:
number type
0 7,21 odd
1 2 even
2 3,6,5,8 even
3 4 even
4 3,17,31 odd
最佳答案
您可以使用简单的string slicing
与步骤= 2
:
In [1755]: df.number = np.where(df['day'].eq('odd'), df.number.str.split(',').str[::2].str.join(','), df['number'])
In [1759]: df
Out[1759]:
number day
0 7,21 odd
1 2 even
2 3,6,5,8 even
3 4 even
4 3,17,31 odd
关于Python数据框: Remove digits in odd position from df rows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62007888/