<p>您可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html" rel="nofollow noreferrer">^{<cd1>}</a>获取所有<code>type</code>{<cd3>}行,然后使用<code>df._get_numeric_data</code>/<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.select_dtypes.html" rel="nofollow noreferrer">^{<cd5>}</a>(<code>'number'</code>)获取所有数字字段,然后使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.gt.html" rel="nofollow noreferrer">^{<cd7>}</a>并使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.astype.html" rel="nofollow noreferrer">^{<cd8>}</a>将它们转换为int,现在使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.update.html" rel="nofollow noreferrer">^{<cd9>}</a>使用新值更新数据帧</p>
<pre><code>df.update(df.query('type == "A"')._get_numeric_data().gt(2).astype(int))
#.select_dtypes('number')
df
col1 col2 col3 col4 col5 type number
0 0.0 1.0 1.0 1.0 0.0 A one
1 1.0 0.0 1.0 1.0 1.0 A two
2 4.0 4.0 0.0 22.0 7.0 C two
3 1.0 1.0 1.0 1.0 1.0 A one
4 9.0 0.0 3.0 6.0 8.0 B one
5 0.0 0.0 1.0 0.0 0.0 A two
6 6.0 5.0 7.0 9.0 9.0 E two
</code></pre>