遍历 Pandas 列并替换 nan 值
Iterating through Pandas Column and replacing nan values
我正在尝试用存储在列表中的预测值替换列中的缺失值。
这是我想要完成的示例:
A B C
0 7.2 'b' 'woo'
1 nan 'v' 'sal'
2 nan 'o' 'sdd'
3 8.1 'k' 'trili'
我的列表是这样的:
list = [3.2, 1.1]
我想要的结果是:
A B C
0 7.2 'b' 'woo'
1 3.2 'v' 'sal'
2 1.1 'o' 'sdd'
3 8.1 'k' 'trili'
我尝试了各种不同的方法来解决这个问题,但这段代码说明了我的总体想法:
q = 0
for item in df['Age']:
if str(item) == 'nan':
item = my_list[q]
q = q + 1
提前谢谢你。这让我发疯了一段时间。
您可以在类似的地方使用 isnull()
:
df.loc[pd.isnull(df['A']), 'A'] = mylist
示例:
In [19]: df
Out[19]:
A B C
0 7.2 b woo
1 NaN v sal
2 NaN o sdd
3 8.1 k trili
In [20]: mylist = [3.2, 1.1]
In [21]: df.loc[pd.isnull(df['A']), 'A'] = mylist
In [22]: df
Out[22]:
A B C
0 7.2 b woo
1 3.2 v sal
2 1.1 o sdd
3 8.1 k trili
n = iter([3.2, 1.1])
for i, j in zip(*np.where(df.isnull())):
df.set_value(i, j, next(n), True)
df
A B C
0 7.2 b woo
1 3.2 v sal
2 1.1 o sdd
3 8.1 k trili
我正在尝试用存储在列表中的预测值替换列中的缺失值。
这是我想要完成的示例:
A B C
0 7.2 'b' 'woo'
1 nan 'v' 'sal'
2 nan 'o' 'sdd'
3 8.1 'k' 'trili'
我的列表是这样的:
list = [3.2, 1.1]
我想要的结果是:
A B C
0 7.2 'b' 'woo'
1 3.2 'v' 'sal'
2 1.1 'o' 'sdd'
3 8.1 'k' 'trili'
我尝试了各种不同的方法来解决这个问题,但这段代码说明了我的总体想法:
q = 0
for item in df['Age']:
if str(item) == 'nan':
item = my_list[q]
q = q + 1
提前谢谢你。这让我发疯了一段时间。
您可以在类似的地方使用 isnull()
:
df.loc[pd.isnull(df['A']), 'A'] = mylist
示例:
In [19]: df
Out[19]:
A B C
0 7.2 b woo
1 NaN v sal
2 NaN o sdd
3 8.1 k trili
In [20]: mylist = [3.2, 1.1]
In [21]: df.loc[pd.isnull(df['A']), 'A'] = mylist
In [22]: df
Out[22]:
A B C
0 7.2 b woo
1 3.2 v sal
2 1.1 o sdd
3 8.1 k trili
n = iter([3.2, 1.1])
for i, j in zip(*np.where(df.isnull())):
df.set_value(i, j, next(n), True)
df
A B C
0 7.2 b woo
1 3.2 v sal
2 1.1 o sdd
3 8.1 k trili