我的Pandas数据帧中有两列。我想用列a
除以b
,再用值来表示,如下所示:
import pandas as pd
csv1=pd.read_csv('auto$0$0.csv')
csv2=pd.read_csv('auto$0$8.csv')
df1 = pd.DataFrame(csv1, columns = ['Column A','Column B'])
df2 = pd.DataFrame(csv2, columns = ['Column A','Column B'])
dfnew = pd.concat([df1, df2])
列:
Column A | Column B |
12-------|--2-------|
14-------|--7-------|
16-------|--8-------|
20-------|--5-------|
以及预期的结果
Result
6
2
2
4
我该怎么做呢?
发布于 2016-04-14 10:00:47
只需对列进行划分:
In [158]:
df['Result'] = df['Column A']/df['Column B']
df
Out[158]:
Column A Column B Result
0 12 2 6.0
1 14 7 2.0
2 16 8 2.0
3 20 5 4.0
发布于 2022-01-22 02:47:17
等同于
/
运算符,但支持用fill_value
替换任一输入中缺少的数据。
因此,通常情况下,div()
与/
相同
df['C'] = df.A.div(df.B)
# df.A / df.B
但是div()
的fill_value
比2倍的fillna()
更简洁
df['C'] = df.A.div(df.B, fill_value=-1)
# df.A.fillna(-1) / df.B.fillna(-1)
而div()
的方法链接更加惯用:
df['C'] = df.A.div(df.B).cumsum().add(1).gt(10)
# ((df.A / df.B).cumsum() + 1) > 10
请注意,当将一个DataFrame与另一个DataFrame或系列划分时,DataFrame.div()
还支持跨axis
或MultiIndex level
进行广播。
https://stackoverflow.com/questions/36619631
复制