gpt4 book ai didi

python - 将操作应用于 Pandas 数据框中列的子集

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:43 25 4
gpt4 key购买 nike

给定一个DataFrame,例如:

   0  1  2
0 'a' 6 7
1 'a' 8 9

其中第一列由字符串组成,其他列是整数。我只想对第 1 列和第 2 列应用常量乘法。也就是说,还要避免将字符串相乘。 df = df*cnst 无法实现这一点。最干净的方法是什么?

最佳答案

这里有一个更通用的解决方案:

数据:

In [200]: df
Out[200]:
A B C D
0 aaa 6 7.1 2001-01-01
1 bbb 8 9.2 2017-02-13

让我们找到所有数字列:

In [201]: num_cols = df.columns[df.dtypes.map(lambda x: np.issubdtype(x, np.number))]

In [202]: num_cols
Out[202]: Index(['B', 'C'], dtype='object')

现在我们只能对数字列进行数学计算:

In [203]: df[num_cols] *= 10

结果:

In [204]: df
Out[204]:
A B C D
0 aaa 60 71.0 2001-01-01
1 bbb 80 92.0 2017-02-13

数据类型:

In [205]: df.dtypes
Out[205]:
A object
B int64
C float64
D datetime64[ns]
dtype: object

关于python - 将操作应用于 Pandas 数据框中列的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com