Python 3.8,使用Pandas
我试图从pandas数据框列“data”中的负数中删除符号,只保留大小,即所有值均为正值。本质上,将一列中的值乘以-1,但仅当值为负数时。这是容易的一点。然后在数据帧中创建一条记录,说明它已反转。因此,在本例中,创建另一个名为“Tubes Inversed”的列
#Check sign and create a column recording if this has been inverted.
num = df['DATA']._get_numeric_data()
if num < 0:
df['Tubes Inverted'] = "Yes"
else:
df['Tubes Inverted'] = "No"
num[num < 0] = num*-1
这里的问题是,我试图确定一个数列的真值,它是模糊的,无法工作,因此我尝试:
num = df['DATA']._get_numeric_data()
for i in num:
if i < 0:
df['Tubes Inverted'] = "Yes"
else:
df['Tubes Inverted'] = "No"
num[num < 0] = num*-1
但我认为这只是它正在测试的数据的索引位置,而不是数据本身
必须有一个更优雅的&;pythonic解决方案
这里有2个要求,这里也不需要循环:
首先,在检查条件后,使用
np.where
创建一个条件列:然后使用
series.abs()
可以将DATA
列转换为绝对值相关问题 更多 >
编程相关推荐