python 怎么根据两列值,修改对应的某列值,其中一列的为需要修改的列标题
1
2
如何根据图2的错误项,更改图1中对应编号的,且错误项对应图1的列标题中的值
回答:
我在描述下问题,时根据图2中的 错误项,和编号去修改图1中对应的编号和列标题与图2中错误项相同的单元格的值。求大神帮忙写一下代码
回答:
自己造了些数据,不知道是否符合题主的意思。
原始数据: 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'])
以上是 python 怎么根据两列值,修改对应的某列值,其中一列的为需要修改的列标题 的全部内容, 来源链接: utcz.com/p/937781.html