假设我有这张表;
A B C
2 1 4
1 8 2
...
我尝试用C列值划分每一行,然后我得到;
A B C
0.5 0.25 4
0.5 4 2
我怎样才能在pandas dataframe中做到这一点
答案 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}}