是否有方法检查Pandas数据帧中是否存在列?
假设我有以下数据帧:
>>> 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']
。
这将起作用:
但为了清楚起见,我可能会把它写成:
为了建议不使用if语句的另一种方法,您可以使用
get()
方法来处理DataFrame
sget方法的行为与python字典相似。
要检查是否存在一个或多个列,可以使用^{} ,如下所示:
正如@brianpck在注释中指出的,
set([])
也可以用花括号构造有关花括号语法的讨论,请参见this question。
或者,您可以使用列表理解,如:
相关问题 更多 >
编程相关推荐