数据
我有一个名为data的数据框,如下所示:
Name ID
JAMES 252
STEPHEN 578
JOY nan
ROGELIO 473
FACS nan
CLIFFORD 793
data['Name'] is a column of strings, and data['ID'] has numeric values.
目标
我想在数据['ID']缺失时(即nan)用缺失值NaN替换数据['Name']。
结果将是:
Name ID
JAMES 252
STEPHEN 578
NaN nan
ROGELIO 473
NaN nan
CLIFFORD 793
我已经在线搜索了,但是类似的答案都是关于使用fillna()的,这不是我想要的。您对此有什么建议吗?
答案 0 :(得分:1)
您可以使用.loc函数查找df['ID']
为空的所有索引,然后将df['NAME']
设置为np.nan。
import numpy as np
df.loc[df['ID'].isnull() , 'NAME'] = np.nan
答案 1 :(得分:1)
这种方法怎么样?
import pandas as pd
import numpy as np
a = {'Name':['JAMES','STEPHEN','JOY','ROGELIO','FACS','CLIFFORD'],'ID':[252,578,np.nan,473,np.nan,793]}
df = pd.DataFrame(a)
df.loc[df['ID'].isnull() , 'Name'] = np.nan
print(df)
输出:
Name ID
0 JAMES 252.0
1 STEPHEN 578.0
2 NaN NaN
3 ROGELIO 473.0
4 NaN NaN
5 CLIFFORD 793.0
如果要删除NaN值,请添加以下内容:
df = df.dropna(how='any')
print(df)
输出:
Name ID
0 JAMES 252.0
1 STEPHEN 578.0
3 ROGELIO 473.0
5 CLIFFORD 793.0
编辑:我做了另一种方法,现在是正确的。
答案 2 :(得分:1)
path('<slug:project>', views.project_detail, name='detail')
输出:
df.mask(df['ID'].isnull())