在Python中循环:根据其他列中的值修改一列

NLR

当前数据:

存储为Pandas DataFrame

print(df)

col1 | col2 
A    | 1
B    | 3
C    | 3
D    | 7
E    | 4
C    | 3

目标:

我想创建一个新列,如果col1是A,C或E,则向col2加1。

col1 | col2  | col2_corrected
A    | 1     | 2
B    | 3     | 3
C    | 3     | 4
D    | 7     | 7
E    | 4     | 5
C    | 3     | 4

我失败的解决方案:

add_one_to_me = ['A','C','E']

if df.col1.isin(add_one_to_me):
    df.col2_corrected = df.col2 + 1
else: df.col2_corrected = df.col2

由于正在评估整个系列的真实性,因此引发了关于歧义性真实性的错误。

如何将其应用于DataFrame的每一行?我是Python和编程的新手,所以这是一个非常基本的问题。

提前致谢!

狄龙
# Copy the existing column over
df['col2_corrected'] = df.col2

# Increment the values of only those items where col1 is A C or E
df.loc[df.col1.isin(['A', 'C', 'E']), 'col2_corrected'] += 1

df
Out[]: 
  col1  col2  col2_corrected
0    A     1               2
1    B     3               3
2    C     3               4
3    D     7               7
4    E     4               5
5    C     3               4

您收到该错误的原因是因为 if df.col1.isin(add_one_to_me):

如果我们看一下: df.col1.isin(add_one_to_me)

Out[]: 
0     True
1    False
2     True
3    False
4     True
5     True

这并不意味着该if声明。您可以做的是迭代检查每个项目col1,然后递增col2_corrected一个。这可以通过使用df.apply(...)来完成for index, row in df.iterrows():

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据DataFrame中的其他列值修改前n行中的列

熊猫如何根据其他列中的值汇总一列的总和

根据data.table中其他列的计算值来计算一列中的滚动总和

根据其他列中的值计算一列中唯一实例的数量

根据SQL Server中的其他列条件找出一列的最大值和最小值

根据同一列中的其他值将列中的值替换为NaN

根据其他列的值填充一列

根据其他两列中的值来旋转一列中的行值

根据不同列中的其他2个值对一列的值求和

根据其他列值生成一列

根据其他列修改dataframe列中的值

如何根据另一列中的间隔填充熊猫中其他列的缺失值?

根据另一列中的条件修改一列中的值的快捷方式

根据pyspark数据框中的其他列的值聚合一列

如何根据R中其他列的值过滤一列中的值?

如何根据多列其他列中的值减去一列中的值?

根据Pandas数据框中的其他三列更改一列的值

R-在data.table上联接,根据行中另一列的值选择其他列

如何根据其他列值对一列中的值进行排序?

R编码如何添加一列并根据其他两列中的值填充它

根据其他列中的条件对一列中的值求和,并更改值

如何根据其他 4 列的值对一列中的值求和?

根据 SQL Server 中的其他列值推断一列的值

在 r 中重复循环,直到一列中的值小于其他几列

如何根据psql中其他列的值删除一列中的重复项

根据其他列修改列的值

基于 Python 中其他列值的相似性对一列求和

根据R中的其他两列减去一列中的值

根据其他两列中的重复值检查一列中的差异