以此为起点:
a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
看起来像
one two three
0 10 1.2 4.2
1 15 70 0.03
2 8 5 0
我想在熊猫中使用类似 if
语句的内容。
if df['one'] >= df['two'] and df['one'] <= df['three']:
df['que'] = df['one']
基本上,通过 if
语句检查每一行来创建一个新列。
文档说要使用 .all
但没有例子……
原文由 Merlin 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以使用 np.where 。如果
cond
是布尔数组,A
和B
是数组,那么defines C to be equal to
A
wherecond
is True, andB
wherecond
is False.产量
如果您有多个条件,那么您可以改用 np.select 。例如,如果您希望
df['que']
等于df['two']
时df['one'] < df['two']
,那么产量
如果我们可以假设
df['one'] >= df['two']
当df['one'] < df['two']
为假时,那么条件和选择可以简化为(如果
df['one']
或df['two']
包含 NaN,假设可能不成立。)注意
定义一个带有字符串值的 DataFrame。由于它们看起来是数字,您最好将这些字符串转换为浮点数:
然而,这会改变结果,因为字符串是逐个字符比较的,而浮点数是按数字比较的。