gpt4 book ai didi

python - 根据另一列中的列名称处理列

转载 作者:行者123 更新时间:2023-12-05 01:49:59 26 4
gpt4 key购买 nike

我喜欢通过选择不同列中包含的列名称来选择要处理的单元格。为了清楚起见,下面给出了输入和输出。列“a”包含用于将每行的值设置为 None 的列名称。我尝试编写如下代码,但不断出现错误。

df1 = pd.DataFrame({'a': ['a1',  'a2',  'a4',  'a1'],
'a1': [1, 3, 1, 0],
'a2': ['9', '3', '1', '4'],
'a3': ['8', '5', '4', '6'],
'a4': ['8', '5', '3', '3']})

df2 = df1.apply(lambda x: x['a']=None, axis=1)

输入

    a   a1  a2  a3  a4 
0 a1 1 9 8 8
1 a2 3 3 5 5
2 a3 1 1 4 3
3 a1 0 4 6 3

输出

    a   a1   a2   a3 a4
0 a1 None 9 4 9
1 a2 3 None 5 5
2 a4 1 1 5 None
3 a1 None 4 6 0

最佳答案

使用 masknumpy boardcast 检查

out = df1.mask(df1.a.values[:,None]==df1.columns.values,'None')
Out[80]:
a a1 a2 a3 a4
0 a1 None 9 8 8
1 a2 3 None 5 5
2 a4 1 1 4 None
3 a1 None 4 6 3

或者我们尝试一下

m = np.equal.outer(df1.a.values,df1.columns.values)

out = df1.mask(m,'None')

关于python - 根据另一列中的列名称处理列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73564255/

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