【问题标题】:How to find ratio of multiple columns in pandas?如何在熊猫中找到多列的比例?
【发布时间】:2018-11-22 02:56:27
【问题描述】:

我有像

这样的列
total_balance, b1_amt, b2_amt, b3_amt, b4_amt, b5_amt 

总共有 100 多列 - 如何找到新列中每列的比率?

例如我试过了

df['ratio_b1]=df[b1_amt]/total_balance 

但是如果我应用这种方法,那么我应该为每一列编写代码,因为有超过 100 列,那么我怎样才能用单个代码编写它们呢?

【问题讨论】:

  • 欢迎来到 Stackoverflow..请分享示例数据,供将要解决问题的人分享

标签: python pandas pyspark


【解决方案1】:

如果您的列全部使用您问题中的确切模式一致命名,您可以执行以下操作:

for i in range(1, 101):
    df['ratio_b{}'.format(i)] = df['b{}_amt'.format(i)] / df['total_balance']

【讨论】:

  • 它工作了,谢谢,但是如果像这样的列 2017-6-20,2017-7-10,2017-8-17,2018-2-22 和更多列,我该如何使用它跨度>
  • 它们是列中DatetimeIndex 的一部分,还是字符串?可能最好提出一个新问题以提供更多详细信息并获得更好的曝光。
  • 列是字符串这个问题有什么解决办法吗?
  • 类似for col in df.filter(regex='\d{4}-\d{1,2}-\d{1,2}'): df['ratio_' + col] = df[col] / df['total_balance']
猜你喜欢
  • 2023-01-23
  • 1970-01-01
  • 2021-09-02
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多