python代码转换括号[number]中的数字值并返回非数字错误
我觉得我不能像通常那样正确地搜索它,因为我不确定这个元素(n)变成了什么[n] 我相信这是一把口授钥匙,但我不确定 我输入了以下代码:python代码转换括号[number]中的数字值并返回非数字错误,python,pandas,Python,Pandas,我觉得我不能像通常那样正确地搜索它,因为我不确定这个元素(n)变成了什么[n] 我相信这是一把口授钥匙,但我不确定 我输入了以下代码: def get_quantile_count(group, q=0.5): group=group.sort_index(by='prop', ascending=False) return group.prop.cumsum().searchsorted(q) + 1 diversity= top1000.groupby(['year','se
def get_quantile_count(group, q=0.5):
group=group.sort_index(by='prop', ascending=False)
return group.prop.cumsum().searchsorted(q) + 1
diversity= top1000.groupby(['year','sex']).apply(get_quantile_count)
diversity=diversity.unstack('sex')
top1000.head()
返回:
name sex births year prop
year sex
1880 F 0 Mary F 7065 1880 0.077643
1 Anna F 2604 1880 0.028618
2 Emma F 2003 1880 0.022013
3 Elizabeth F 1939 1880 0.021309
4 Minnie F 1746 1880 0.019188
和diversity.head()
返回
sex F M
year
1880 [38] [14]
1881 [38] [14]
1882 [38] [15]
1883 [39] [15]
1884 [39] [16]
我相信,由于在运行diversity.plot(title='stuff')时,这些值都在[括号]中,因此我得到了错误:
TypeError: Empty 'DataFrame': no numeric data to plot
这些方括号在哪里?这与您的函数在返回时调用的get\u quantile\u count
有关
它总是回来。请参见文档中的示例:
对于这一事实,您可以将函数的最后一行更改为:
return group.prop.cumsum().searchsorted(q)[0] + 1
或者,如果出于某种原因不想编辑该函数,则始终可以提取每个列表的第一个元素,该元素应用于数据帧的每个元素:
In []: df
Out[]:
F M
year
1880 [38] [14]
1881 [38] [14]
1882 [38] [15]
1883 [39] [15]
1884 [39] [16]
In []: df.applymap(lambda x: x[0])
Out[]:
F M
year
1880 38 14
1881 38 14
1882 38 15
1883 39 15
1884 39 16
[38]是一个列表。[38].pop()是获取其包含的单个数字的一种方法,感谢回复。在代码中的什么时候它变成了一个列表?
In []: df
Out[]:
F M
year
1880 [38] [14]
1881 [38] [14]
1882 [38] [15]
1883 [39] [15]
1884 [39] [16]
In []: df.applymap(lambda x: x[0])
Out[]:
F M
year
1880 38 14
1881 38 14
1882 38 15
1883 39 15
1884 39 16