我有熊猫数据框
条件是:
'如果RPoints中的值不是-1,则kPoints中的任何0都应视为“无”
'如果RPoints中的值不是-1,则WPoints中的任何0都应被视为“无”。
数据类型如下:
kPoints int64
RPoints int64
WPoints int64
如何将-1替换为“无”? 而且我猜想“ None”对分析没有帮助,那么我应该如何删除那些包含“ None”的行?
答案 0 :(得分:0)
您可以替换单个列并更改其类型:
df['foo'] = df['foo'].astype(np.object)
然后:
df['foo'][0] = None
请注意,这将使列上的任何处理变慢,因为类型现在是Python对象,而不是数组中的整数。
答案 1 :(得分:0)
尝试
数据
id kpoints Rpoints Wpoints
0 1 1241 -1 1466
1 2 0 1475 0
2 3 0 1586 0
3 4 0 -1 0
使用
data.loc[(data['Rpoints'] != -1) & (data['kpoints'] == 0), 'kpoints'] = None
data.loc[(data['Rpoints'] != -1) & (data['Wpoints'] == 0), 'Wpoints'] = None
输出
id kpoints Rpoints Wpoints
0 1 1241.0 -1 1466.0
1 2 NaN 1475 NaN
2 3 NaN 1586 NaN
3 4 0.0 -1 0.0
简单的data.dropna()
将删除所有na行