python中如何替换某列特定数值_python 怎么根据两列值,修改对应的某列值,其中一列的为需要修改的列标题...

自己造了些数据,不知道是否符合题主的意思。

原始数据:

no wrong_item

0 001 a

1 003 a

2 002 b

3 004 c

处理后结果:

Out[1]:

no a b c

0 001 1 0 0

2 002 0 1 0

1 003 1 0 0

3 004 0 0 1

具体代码如下:

import pandas as pd

# 创建dataframe,或者从csv读取dataframe

# old_df = pd.read_csv(path)

old_df = pd.DataFrame([

{'wrong_item':'a', 'no':'001'},

{'wrong_item':'a', 'no':'003'},

{'wrong_item':'b', 'no':'002'},

{'wrong_item':'c', 'no':'004'}

])

# dataframe记录字典中,增加 'a','b','c'三个键,并标记是否存在错误项(wrong_item)

record_list = []

for record in old_df.to_dict('records'):

for k in ['a', 'b', 'c']:

if k in record["wrong_item"]:

record[k] = 1

else:

record[k] = 0

# 去掉重复进入的record

if record not in record_list:

record_list.append(record)

# 生成新的dataframe

new_df = pd.DataFrame(record_list)

# 排除错误项(wrong_item)列

new_df = new_df.loc[:, new_df.columns !='wrong_item']

# 设定列的顺序为:编号(no),'a','b','c'

new_df = new_df.reindex(columns=['no','a','b','c'])

# 设定行顺序:编号(no),'a','b','c'升序排列

new_df.sort_values(['no','a','b','c'])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值