根据datafram中另一列的条件,将int64值替换为“无”

2024-10-01 04:56:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有熊猫数据帧

[1]: https://i.stack.imgur.com/jWe9U.png

条件是:

'如果RPoints中的值不是-1,则kPoints中的任何0都应视为“无”

'如果RPoints中的值不是-1,则WPoints中的任何0都应视为“无”

数据类型如下:

kPoints         int64

RPoints         int64

WPoints         int64

如何用“无”替换-1? 我猜“None”对分析没有帮助,那么我应该如何删除那些包含“None”的行呢?你知道吗


Tags: 数据none条件数据类型int64wpointskpointsrpoints
2条回答

试试这个

数据

   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行

可以替换单个列并更改其类型:

df['foo'] = df['foo'].astype(np.object)

然后:

df['foo'][0] = None

请注意,这将使列上的任何处理变慢,因为类型现在是Python对象,而不是数组中的整数。你知道吗

相关问题 更多 >