有没有办法检查一列是否存在于Pandas DataFrame中?
假设我有以下DataFrame:
>>> 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']
。
发布于 2014-07-22 00:48:49
这将会起作用:
if 'A' in df:
但为了清楚起见,我可能会这样写:
if 'A' in df.columns:
发布于 2017-05-23 02:28:29
为了建议另一种不使用if语句的方法,您可以对DataFrame
使用get()
方法。为了根据问题执行求和:
df['sum'] = df.get('A', df['B']) + df['C']
python get方法具有与DataFrame
字典相似的行为。
发布于 2022-01-11 09:02:16
您可以使用set的方法issuperset
set(df).issuperset(['A', 'B'])
# set(df.columns).issuperset(['A', 'B'])
https://stackoverflow.com/questions/24870306
复制相似问题