首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在pandas数据帧中按元素划分两列

如何在pandas数据帧中按元素划分两列
EN

Stack Overflow用户
提问于 2016-04-14 17:56:38
回答 2查看 111.4K关注 0票数 35

我的Pandas数据帧中有两列。我想用列a除以b,再用值来表示,如下所示:

代码语言:javascript
运行
复制
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])

列:

代码语言:javascript
运行
复制
Column A | Column B |
12-------|--2-------|
14-------|--7-------|
16-------|--8-------|
20-------|--5-------|

以及预期的结果

代码语言:javascript
运行
复制
Result
6
2
2
4

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-14 18:00:47

只需对列进行划分:

代码语言:javascript
运行
复制
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
票数 76
EN

Stack Overflow用户

发布于 2022-01-22 10:47:17

Series.div()

等同于/运算符,但支持用fill_value替换任一输入中缺少的数据。

因此,通常情况下,div()/相同

代码语言:javascript
运行
复制
df['C'] = df.A.div(df.B)
#         df.A / df.B

但是div()fill_value比2倍的fillna()更简洁

代码语言:javascript
运行
复制
df['C'] = df.A.div(df.B, fill_value=-1)
#         df.A.fillna(-1) / df.B.fillna(-1)

div()的方法链接更加惯用:

代码语言:javascript
运行
复制
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进行广播。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36619631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档