[英]How to pick some values of a column and make another one with them?
这是一张类似于我正在使用的表格
A B
0 12.2 43
1 10.1 32
2 3.4 34
3 12.0 55
4 40.6 31
而我正在尝试做的是获取 A 列的一些值,这些值遵循某种模式,并创建具有这些值的另一列。 例如,列 C 将只有 A 中大于 12 的值,而 D 列中的值小于或等于:
A B C D
0 12.2 43 12.2 NaN
1 10.1 32 NaN 10.1
2 3.4 34 NaN 3.4
3 12.0 55 NaN 12.0
4 40.6 31 40.6 NaN
我尝试为每组值制作一个列表,但我无法将它们与原始表合并,因为有些数字重复并且列数增加。 我认为有一种更简单的方法可以做到这一点,但我似乎找不到。 我怎样才能做到这一点?
还有另一个版本:
df['C'] = df.loc[df.A > 12, 'A']
df['D'] = df.loc[df.A <= 12, 'A']
print(df)
印刷:
A B C D
0 12.2 43 12.2 NaN
1 10.1 32 NaN 10.1
2 3.4 34 NaN 3.4
3 12.0 55 NaN 12.0
4 40.6 31 40.6 NaN
不是mask
吗? where
:
mask = df['A']>12
df['C'] = df['A'].where(mask)
df['D'] = df['A'].mask(mask)
Output:
A B C D
0 12.2 43 12.2 NaN
1 10.1 32 NaN 10.1
2 3.4 34 NaN 3.4
3 12.0 55 NaN 12.0
4 40.6 31 40.6 NaN
让我们试试np.where
df['C']=np.where(df.A>12,df.A,np.nan)
df['D']=np.where(df.A<=12,df.A,np.nan)
df
A B C D
0 12.2 43 12.2 NaN
1 10.1 32 NaN 10.1
2 3.4 34 NaN 3.4
3 12.0 55 NaN 12.0
4 40.6 31 40.6 NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.