从 Pandas 系列中删除 NaN 值 - 之前的 post 答案均无效
Removing NaN values from Pandas series - no prior post answers have worked
我有以下命令,其中 returns a Pandas Series 作为其输出:
def run_ttest():
for key,value in enumerate(data['RegionName']):
if value in stateslist:
indexing = data['differ'].iloc[key]
Townames.append(indexing)
else:
indexing = data['differ'].iloc[key]
Notowns.append(indexing)
Unitowns['Unitownvalues'] = Townames
Notunitowns['Notunitownvalues'] = Notowns
Notunitowns['Notunitownvalues'] = Notunitowns['Notunitownvalues']
Unitowns['Unitownvalues'] = Unitowns['Unitownvalues']
return Unitowns['Unitownvalues']
run_ttest()
输出打印系列 Unitowns['Unitownvalues']
:
0 -32000.000000
1 -16200.000000
2 -12466.666667
3 -14600.000000
4 633.333333
5 -10600.000000
6 -6466.666667
7 800.000000
8 -3066.666667
9 NaN
10 1566.666667
11 10633.333333
12 6466.666667
13 1333.333333
14 -15233.333333
15 -11833.333333
16 -3200.000000
17 -1566.666667
18 -8333.333333
19 5166.666667
20 5033.333333
21 -6166.666667
22 -16366.666667
23 -22266.666667
24 -112766.666667
25 2566.666667
26 3000.000000
27 -5666.666667
28 NaN
Name: Unitownvalues, dtype: float64
我尝试了以下方法:
Notunitowns['Notunitownvalues'] = Notunitowns['Notunitownvalues'].s[~s.isnull()]
Unitowns['Unitownvalues'] = Unitowns['Unitownvalues'].s[~s.isnull()]
Notunitowns['Notunitownvalues'] = Notunitowns['Notunitownvalues'].dropna()
Unitowns['Unitownvalues'] = Unitowns['Unitownvalues'].dropna()
但是这些尝试都没有成功。
之前的 post 中有一个建议是将数据类型转换为 'float',但由于类型已经是 'float64',添加 .astype(float) not 解决问题。
有没有人愿意帮我一把?
Unitowns
是数据框吗?在那种情况下,我会这样做:
Unitowns.dropna(subset=['Unitownvalues'])
这将为您提供一个数据框,其中 Unitownvalues
是 na。如果你只想要系列,Unitowns['Unitownvalues'].dropna()
会起作用,但你不能将它直接分配回数据框,因为该列与我假设你拥有的其他列的长度不匹配(我猜这是您遇到的错误)。
编辑:
以下内容对您不起作用吗?如果不是,你的错误是什么?
s = run_ttest()
s = s.dropna()
s
我有以下命令,其中 returns a Pandas Series 作为其输出:
def run_ttest():
for key,value in enumerate(data['RegionName']):
if value in stateslist:
indexing = data['differ'].iloc[key]
Townames.append(indexing)
else:
indexing = data['differ'].iloc[key]
Notowns.append(indexing)
Unitowns['Unitownvalues'] = Townames
Notunitowns['Notunitownvalues'] = Notowns
Notunitowns['Notunitownvalues'] = Notunitowns['Notunitownvalues']
Unitowns['Unitownvalues'] = Unitowns['Unitownvalues']
return Unitowns['Unitownvalues']
run_ttest()
输出打印系列 Unitowns['Unitownvalues']
:
0 -32000.000000
1 -16200.000000
2 -12466.666667
3 -14600.000000
4 633.333333
5 -10600.000000
6 -6466.666667
7 800.000000
8 -3066.666667
9 NaN
10 1566.666667
11 10633.333333
12 6466.666667
13 1333.333333
14 -15233.333333
15 -11833.333333
16 -3200.000000
17 -1566.666667
18 -8333.333333
19 5166.666667
20 5033.333333
21 -6166.666667
22 -16366.666667
23 -22266.666667
24 -112766.666667
25 2566.666667
26 3000.000000
27 -5666.666667
28 NaN
Name: Unitownvalues, dtype: float64
我尝试了以下方法:
Notunitowns['Notunitownvalues'] = Notunitowns['Notunitownvalues'].s[~s.isnull()]
Unitowns['Unitownvalues'] = Unitowns['Unitownvalues'].s[~s.isnull()]
Notunitowns['Notunitownvalues'] = Notunitowns['Notunitownvalues'].dropna()
Unitowns['Unitownvalues'] = Unitowns['Unitownvalues'].dropna()
但是这些尝试都没有成功。
之前的 post 中有一个建议是将数据类型转换为 'float',但由于类型已经是 'float64',添加 .astype(float) not 解决问题。
有没有人愿意帮我一把?
Unitowns
是数据框吗?在那种情况下,我会这样做:
Unitowns.dropna(subset=['Unitownvalues'])
这将为您提供一个数据框,其中 Unitownvalues
是 na。如果你只想要系列,Unitowns['Unitownvalues'].dropna()
会起作用,但你不能将它直接分配回数据框,因为该列与我假设你拥有的其他列的长度不匹配(我猜这是您遇到的错误)。
编辑: 以下内容对您不起作用吗?如果不是,你的错误是什么?
s = run_ttest()
s = s.dropna()
s