【问题标题】:divide different columns of dataframe python划分数据框python的不同列
【发布时间】:2021-02-11 09:52:47
【问题描述】:

我有一个包含多列的数据框

     0    1    2    3
2    1    2    2  155
3    1   92    2  145
4    1   87    2  123
5    1   85    2  146
6    1   79    3  138

我想用划分 col 0/col1、col2/col3...等的结果创建一个新的 df 感谢您的帮助!

【问题讨论】:

  • 最后一列必须除以第一列吗?
  • 第一列 [0] 必须除以第二列 [1] 第三列 [2] 再除以第四列 [3] ...就像我拥有的​​列一样多
  • 最后一个呢?我的意思是,生成的数据框会少一列?
  • 生成的数据帧的列数将是原始数据帧的一半。因为我希望仅在 2 组上进行划分,所以我不希望列 [1] 被列 [2] 划分,只有 [0]/[1]、[2]/[3]、[4]/ [5]....

标签: python dataframe multiple-columns divide


【解决方案1】:

你可以这样做:

df1 = df[df.columns[::2]]
df2 = df[df.columns[1::2]]
df2.columns = df1.columns
df1/df2
          0         2
2  0.500000  0.012903
3  0.010870  0.013793
4  0.011494  0.016260
5  0.011765  0.013699
6  0.012658  0.021739

【讨论】:

  • 这将起作用..现在我遇到了一个问题,即我的值似乎是 str 而不是 /:'str' 和 'str' 的不受支持的 int 操作数类型。我在你写的行之前尝试 data=int(df_data) 但它似乎没有解决问题......有什么建议吗?
  • @Iva 如果您的数据框只有数值,您可以这样做df = df.astype(float)
【解决方案2】:
import pandas as pd

#original dataframe
org_df = pd.DataFrame({'0': [1,1,1,1,1], '1':[2,92, 87, 85, 79], '2':[2,2,2,2,2], '3': [155,145,123,146,138]}, index = [2,3,4,5,6])

df = pd.DataFrame()
df['col1'] = org_df['0']/org_df['1']
df['col2'] = org_df['2']/org_df['3']

print(df)

【讨论】:

  • 这是一个选项,但是我有数百列,我想用循环自动化它
  • 你一开始没提到
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多