【问题标题】:Remove values from all columns and rows of pandas dataframe从 pandas 数据框的所有列和行中删除值
【发布时间】:2017-11-23 06:48:51
【问题描述】:

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

It is a large dataset with 1500 rows and 200 columns

我想知道如何删除行和列中每个值之前的数字。例子 这些值如下所示: 1:0.345 2:-0.467

我只希望值是这样的: 0.345 -0.467

我该怎么做?

【问题讨论】:

  • 糟糕,意外关闭。
  • 试试这个:df.iloc[:, 1:] = df.iloc[:, 1:].applymap(lambda x: x.split(':')[-1]).astype(float)

标签: python pandas dataframe


【解决方案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

如果没有可能的NaNs 值,请使用cᴏʟᴅsᴘᴇᴇᴅ's solution:

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

【讨论】:

猜你喜欢
  • 2018-06-17
  • 2017-01-03
  • 2016-12-16
  • 2016-03-13
  • 2011-02-08
  • 2016-07-07
  • 2021-06-18
  • 1970-01-01
相关资源
最近更新 更多