从pandas dataframe的所有列和行中删除值

时间:2017-11-23 06:48:51

标签: python pandas dataframe

我有一个看起来像这样的pandas数据框

It is a large dataset with 1500 rows and 200 columns

我想知道如何在行和列中的每个值之前删除该数字。例 值看起来像这样: 1:0.345 2:-0.467

我只希望价值如下: 0.345 -0.467

我该怎么做?

1 个答案:

答案 0 :(得分:1)

选择所有列,而不是先由iloc和每列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ᴘᴇᴇᴅ's solution

df.iloc[:, 1:] = df.iloc[:, 1:].applymap(lambda x: x.split(':')[-1]).astype(float)