根据单个矢量化条件替换列中的值
Replacing the value in a column based on a single vectorized condition
我在多个条件下尝试了以下代码并且工作完美,无论我在一个条件下尝试什么它都不会工作。无论 Col_A 的值是否为 True,它都会简单地 return 每行的值“1”和“SD”。请让我知道任何建议,奇怪的是我没有收到任何错误。
condition = [
df1['Col_A'] == 'TRUE'
]
result1 = ['1']
result2 = ['SD']
df1['Col_B'] = np.select(condition, result1, 'NA')
df1['Col_C'] = np.select(condition, result2, 'NA')
df1```
Input
Col_A Col_B Col_C
0 TRUE NA NA
1 FALSE 1001 Valid
2 TRUE NA NA
3 TRUE NA NA
Output
Col_A Col_B Col_C
0 TRUE NA NA
1 FALSE NA NA
2 TRUE NA NA
3 TRUE NA NA
Desired Output
Col_A Col_B Col_C
0 TRUE 1 SD
1 FALSE 1001 Valid
2 TRUE 1 SD
3 TRUE 1 SD
您可以使用带有条件的简单 loc
赋值:
字符串"TRUE"
:
df.loc[df['Col_A'].eq('TRUE'), ['Col_B', 'Col_C']] = [1, 'SD']
布尔值True
:
df.loc[df['Col_A'], ['Col_B', 'Col_C']] = [1, 'SD']
输出:
Col_A Col_B Col_C
0 TRUE 1.0 SD
1 FALSE 1001.0 Valid
2 TRUE 1.0 SD
3 TRUE 1.0 SD
我在多个条件下尝试了以下代码并且工作完美,无论我在一个条件下尝试什么它都不会工作。无论 Col_A 的值是否为 True,它都会简单地 return 每行的值“1”和“SD”。请让我知道任何建议,奇怪的是我没有收到任何错误。
condition = [
df1['Col_A'] == 'TRUE'
]
result1 = ['1']
result2 = ['SD']
df1['Col_B'] = np.select(condition, result1, 'NA')
df1['Col_C'] = np.select(condition, result2, 'NA')
df1```
Input
Col_A Col_B Col_C
0 TRUE NA NA
1 FALSE 1001 Valid
2 TRUE NA NA
3 TRUE NA NA
Output
Col_A Col_B Col_C
0 TRUE NA NA
1 FALSE NA NA
2 TRUE NA NA
3 TRUE NA NA
Desired Output
Col_A Col_B Col_C
0 TRUE 1 SD
1 FALSE 1001 Valid
2 TRUE 1 SD
3 TRUE 1 SD
您可以使用带有条件的简单 loc
赋值:
字符串"TRUE"
:
df.loc[df['Col_A'].eq('TRUE'), ['Col_B', 'Col_C']] = [1, 'SD']
布尔值True
:
df.loc[df['Col_A'], ['Col_B', 'Col_C']] = [1, 'SD']
输出:
Col_A Col_B Col_C
0 TRUE 1.0 SD
1 FALSE 1001.0 Valid
2 TRUE 1.0 SD
3 TRUE 1.0 SD