【问题标题】:Pandas way to do arithmetic operations on only numeric columns [duplicate]Pandas仅对数字列进行算术运算的方法[重复]
【发布时间】:2021-11-02 23:32:44
【问题描述】:

假设我有很多列,这种格式的东西

  name1  val1 name2  val21  val22  ...
0     a     1    aa      1      5
1     b     2    bb      2      6
2     c     3    cc      3      7  

任何仅对数字列执行算术(标量)运算的有效/单行?,
像这样的

  df = df.mul(100)

  name1  val1 name2  val21  val22 ...
0     a   100    aa    100    500
1     b   200    bb    200    600
2     c   300    cc    300    700 

【问题讨论】:

标签: python pandas


【解决方案1】:

您可以使用select_dtypes 查找数字列:

s = df.select_dtypes("number").columns
df[s] *= 100

print (df)

  name1  val1 name2  val21  val22
0     a   100    aa    100    500
1     b   200    bb    200    600
2     c   300    cc    300    700

【讨论】:

  • df[df.select_dtypes("number").columns] *= 100 @not_speshal 来自this answer
  • 另一种方式:df.assign(**df._get_numeric_data()*100)df.update 也应该可以工作
猜你喜欢
  • 2014-10-02
  • 2011-05-07
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 1970-01-01
相关资源
最近更新 更多