首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查Pandas中是否存在列

如何检查Pandas中是否存在列
EN

Stack Overflow用户
提问于 2014-07-22 00:43:03
回答 3查看 388.5K关注 0票数 443

有没有办法检查一列是否存在于Pandas DataFrame中?

假设我有以下DataFrame:

代码语言:javascript
复制
>>> import pandas as pd
>>> from random import randint
>>> df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],
                       'B': [randint(1, 9)*10 for x in xrange(10)],
                       'C': [randint(1, 9)*100 for x in xrange(10)]})
>>> df
   A   B    C
0  3  40  100
1  6  30  200
2  7  70  800
3  3  50  200
4  7  50  400
5  4  10  400
6  3  70  500
7  8  30  200
8  3  40  800
9  6  60  200

我想要计算df['sum'] = df['A'] + df['C']

但首先我想检查df['A']是否存在,如果不存在,我想计算df['sum'] = df['B'] + df['C']

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-22 00:48:49

这将会起作用:

代码语言:javascript
复制
if 'A' in df:

但为了清楚起见,我可能会这样写:

代码语言:javascript
复制
if 'A' in df.columns:
票数 892
EN

Stack Overflow用户

发布于 2017-05-23 02:28:29

为了建议另一种不使用if语句的方法,您可以对DataFrame使用get()方法。为了根据问题执行求和:

代码语言:javascript
复制
df['sum'] = df.get('A', df['B']) + df['C']

python get方法具有与DataFrame字典相似的行为。

票数 16
EN

Stack Overflow用户

发布于 2022-01-11 09:02:16

您可以使用set的方法issuperset

代码语言:javascript
复制
set(df).issuperset(['A', 'B'])
# set(df.columns).issuperset(['A', 'B'])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24870306

复制
相关文章

相似问题

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