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

在R中对利润表DataFrame执行过滤、字符串拆分与值替换

处理利润表DataFrame:修正列值并过滤行

问题

给定利润表DataFrame,需完成两项操作:

  1. 修正yearly和monthly列的错误值:从income列(格式为年度_月度)拆分出正确数值,覆盖对应列的错误内容
  2. 过滤出年度收入超过500的行(年度收入指拆分后的年度数值)

原始数据

IDyearlymonthlyincome
1100200100_200
2500100300_100
31000500600_500
4300250500_250

期望修正后的数据(未过滤)

IDyearlymonthlyincome
1100200100_200
2300100300_100
3600500600_500
4300250500_250

解决方案

1. 修正列值

利用str.split()拆分income列,提取正确的年度和月度数值覆盖原列:

import pandas as pd

# 构建原始DataFrame
df = pd.DataFrame({
    'ID': [1, 2, 3, 4],
    'yearly': [100, 500, 1000, 300],
    'monthly': [200, 100, 500, 250],
    'income': ['100_200', '300_100', '600_500', '500_250']
})

# 拆分income列并转换为整数类型
split_vals = df['income'].str.split('_', expand=True).astype(int)
# 覆盖yearly和monthly列的错误值
df['yearly'] = split_vals[0]
df['monthly'] = split_vals[1]

2. 过滤行

基于修正后的yearly列,筛选出数值大于500的行:

# 过滤年度收入超过500的行
filtered_df = df[df['yearly'] > 500]

最终过滤结果

IDyearlymonthlyincome
3600500600_500

若你需要的是仅修正列值、不进行过滤的结果,直接使用修正后的df即可得到你提供的期望输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 03:16:06