You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按条件修改Pandas DataFrame中count列的单元格数据?

解决方案:Pandas条件修改count列数值

前提说明

原DataFrame的count列因创建方式为np.array混合类型,默认是字符串(object)类型,处理前需先转换为数值类型(或直接用字符串操作),以下提供三种实用实现方式:


方法1:数值运算(推荐,便于后续统计分析)

先将count转为整数类型,再通过条件判断对指定行的数值放大100倍:

import pandas as pd
import numpy as np

# 初始化原数据
temp = pd.DataFrame(np.array([['2022-10-13','one',123],['2022-10-13','two',77123],
                              ['2022-10-13','three',451], ['2022-10-13','three',77]]),
                            columns = ['date','reason','count'])

# 转换count列为整数类型
temp['count'] = temp['count'].astype(int)

# 使用np.where实现条件赋值:reason不等于two时乘以100,否则保持原值
temp['count'] = np.where(temp['reason'] != 'two', temp['count'] * 100, temp['count'])

方法2:通过loc定位修改

同样先转换类型,再用loc精准定位目标行修改数值:

# 初始化原数据(同上)
temp = pd.DataFrame(np.array([['2022-10-13','one',123],['2022-10-13','two',77123],
                              ['2022-10-13','three',451], ['2022-10-13','three',77]]),
                            columns = ['date','reason','count'])

temp['count'] = temp['count'].astype(int)

# 定位reason不等于two的行,将count列乘以100
temp.loc[temp['reason'] != 'two', 'count'] *= 100

方法3:字符串拼接(保持字符串格式)

如果不需要数值类型,仅需在字符串末尾添加00,可直接操作:

# 初始化原数据(同上)
temp = pd.DataFrame(np.array([['2022-10-13','one',123],['2022-10-13','two',77123],
                              ['2022-10-13','three',451], ['2022-10-13','three',77]]),
                            columns = ['date','reason','count'])

# 条件拼接字符串
temp['count'] = np.where(temp['reason'] != 'two', temp['count'] + '00', temp['count'])

最终结果

三种方法均可得到目标DataFrame:

date  reason  count
0  2022-10-13     one  12300
1  2022-10-13     two  77123
2  2022-10-13   three  45100
3  2022-10-13   three   7700

内容的提问来源于stack exchange,提问作者DarknessPlusPlus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:40:35