我有一个像这样的熊猫数据框
我想知道如何删除行和列中每个值之前的数字。示例值看起来像这样:1:0.345 2:-0.467
我只希望值是这样的:0.345 -0.467
我怎样才能做到这一点?
选择所有列(不带第一个byiloc
和),并为每列apply
split
选择第二个值,并按[1]
,最后转换为float
:
df = pd.DataFrame({0: ['4,8,7', '7,6'],
1: ['1: 0.345', '1: 0.345'],
2: ['2: -0.467', '2: -0.467']})
print (df)
0 1 2
0 4,8,7 1: 0.345 2: -0.467
1 7,6 1: 0.345 2: -0.467
df.iloc[:, 1:] = df.iloc[:, 1:].apply(lambda x: x.str.split(':').str[1]).astype(float)
print (df)
0 1 2
0 4,8,7 0.345 -0.467
1 7,6 0.345 -0.467
如果没有NaN
s值,请使用cᴏʟᴅsᴘᴇᴇᴅ解决方案:
df.iloc[:, 1:] = df.iloc[:, 1:].applymap(lambda x: x.split(':')[-1]).astype(float)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句