如何用条件替换 Pandas 数据框中所有列中的所有值
How to replace all value in all columns in a Pandas dataframe with condition
我有以下数据框:
In [11]: import pandas as pd
In [12]: mydict = {'foo':[0, 0.3], 'bar':[1,0.55], 'qux': [0.3,4.1]}
In [13]: df = pd.DataFrame.from_dict(mydict, orient='index')
In [14]: df
Out[14]:
0 1
qux 0.3 4.10
foo 0.0 0.30
bar 1.0 0.55
我想做的是将所有小于1的值替换为0。
产量:
0 1
qux 0 4.10
foo 0 0
bar 1.0 0
我怎样才能做到这一点?
使用布尔索引并传递条件:
In [155]:
df[df<1] = 0
df
Out[155]:
0 1
bar 1 0.0
foo 0 0.0
qux 0 4.1
只是为了展示这里发生的事情,执行 df < 1
将 return 一个布尔索引:
In [156]:
df < 1
Out[156]:
0 1
bar False True
foo True True
qux True False
然后我们将其作为掩码传递给 df
,然后可以将新值分配为 df[df<1]
有关更多示例,请参阅 docs
我有以下数据框:
In [11]: import pandas as pd
In [12]: mydict = {'foo':[0, 0.3], 'bar':[1,0.55], 'qux': [0.3,4.1]}
In [13]: df = pd.DataFrame.from_dict(mydict, orient='index')
In [14]: df
Out[14]:
0 1
qux 0.3 4.10
foo 0.0 0.30
bar 1.0 0.55
我想做的是将所有小于1的值替换为0。 产量:
0 1
qux 0 4.10
foo 0 0
bar 1.0 0
我怎样才能做到这一点?
使用布尔索引并传递条件:
In [155]:
df[df<1] = 0
df
Out[155]:
0 1
bar 1 0.0
foo 0 0.0
qux 0 4.1
只是为了展示这里发生的事情,执行 df < 1
将 return 一个布尔索引:
In [156]:
df < 1
Out[156]:
0 1
bar False True
foo True True
qux True False
然后我们将其作为掩码传递给 df
,然后可以将新值分配为 df[df<1]
有关更多示例,请参阅 docs