如何在每一行划分特定列的值?

时间:2014-10-24 08:57:48

标签: python pandas

假设我有这张表;

A  B  C
2  1  4
1  8  2
...

我尝试用C列值划分每一行,然后我得到;

A     B    C
0.5  0.25  4
0.5   4    2

我怎样才能在pandas dataframe中做到这一点

2 个答案:

答案 0 :(得分:1)

使用内置的div函数并传递参数axis=0

In [123]:

df[['A','B']] = df[['A','B']].div(df['C'],axis=0)
df
Out[123]:
     A     B  C
0  0.5  0.25  4
1  0.5  4.00  2

答案 1 :(得分:0)

例如,您可以df[col] = df[col] / df[col2] col,其中col2'A'可以是'C'import pandas as pd from io import StringIO s = '''A B C 2 1 4 1 8 2''' df = pd.read_csv(StringIO(s), sep='\s+') print(df) # A B C # 0 2 1 4 # 1 1 8 2 df['A'] = df['A'] / df['C'] # or df['A'] /= df['C'] df['B'] = df['B'] / df['C'] # or df['B'] /= df['C'] print(df) # A B C # 0 0.5 0.25 4 # 1 0.5 4.00 2

下面的代码将依次将A和B除以C.你可以忽略第一部分,那就是设置DataFrame。

['A', 'B']

为了使这更容易(如果你有多列)你可以有一个列名列表for x in ['A', 'B']: df[x] /= df['C'] ,然后迭代它

{{1}}