import pandas as pd
import numpy as np
df = pd.DataFrame({'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']})
# Convert only numeric value to put it in comparison
df['Y'] = np.where(df.X.convert_objects(convert_numeric=True) > 15000, 'A', 'B')
print (df)
您可以通过
convert_objects
实现您的目标:输出:
^{pr2}$当
df['X']
包含数字和字符串的混合时,列的数据类型将是object
,而不是数字数据类型。df['X']
中的类似数字的项可能是int或float,甚至可能是字符串(从您的问题中看不清楚)。 在这种情况下,许多数值运算,如df['X'] > 15000
可能会引起错误。在要将类似数字的值视为数字,请使用
pd.to_numeric
将列转换为数字数据类型:您还可以通过测试nan来识别类似字符串的值:
^{pr2}$收益率
相关问题 更多 >
编程相关推荐