Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jupyter笔记本Ipython:Groupby基于按字母顺序排列的值_Python_Pandas_Jupyter Notebook_Pandas Groupby - Fatal编程技术网

Jupyter笔记本Ipython:Groupby基于按字母顺序排列的值

Jupyter笔记本Ipython:Groupby基于按字母顺序排列的值,python,pandas,jupyter-notebook,pandas-groupby,Python,Pandas,Jupyter Notebook,Pandas Groupby,我第一次使用jupyter笔记本。我尝试按csv的一列进行分组,并获取值的计数。我用这个代码得到了下面的结果 import pandas pandas.read_csv('a.csv', sep=',') df.groupby('name').name.count() name >Aa</TOPONYM> 4 >Aachen</TOPONYM> 5 >Aartselaar</TOPONYM&g

我第一次使用jupyter笔记本。我尝试按csv的一列进行分组,并获取值的计数。我用这个代码得到了下面的结果

import pandas
pandas.read_csv('a.csv', sep=',')
df.groupby('name').name.count()
name
>Aa</TOPONYM>                 4
>Aachen</TOPONYM>             5
>Aartselaar</TOPONYM>         1
>Abadan</TOPONYM>             1
>Abaya</TOPONYM>              1
>Abba</TOPONYM>              12
>Abbey                        2
>Abbeydale</TOPONYM>          1
>Abbot</TOPONYM>              2
>Abbots                       3
>Abbotsford</TOPONYM>        22
>Abbotsinch</TOPONYM>         5
>Abbotts                      1
>Abel</TOPONYM>               1
>Aberchirder</TOPONYM>        2
>Aberdare</TOPONYM>           3
>Aberdeen                     1
>Aberdeen</TOPONYM>         163
>Aberdeenshire</TOPONYM>    286
>Aberdour</TOPONYM>           9
>Aberfan</TOPONYM>            1
>Aberfeldy</TOPONYM>         16
>Abergavenny</TOPONYM>        4
>Aberlady                     1
>Aberlady</TOPONYM>           3
>Abernethy</TOPONYM>          1
>Abertay                      1
>Abertillery</TOPONYM>        6
>Abha</TOPONYM>               2
>Abidjan</TOPONYM>           10
                           ... 
>Zakho</TOPONYM>             20
>Zakopane</TOPONYM>           1
>Zambezi                      2
>Zambezi</TOPONYM>            8
>Zambia</TOPONYM>            19
>Zamboanga</TOPONYM>          4
>Zandak</TOPONYM>             3
>Zanzibar</TOPONYM>          11
>Zaragosa</TOPONYM>           1
>Zaragoza</TOPONYM>           4
>Zeebrugge</TOPONYM>         28
>Zeeland</TOPONYM>            2
>Zemun</TOPONYM>              1
>Zenica</TOPONYM>            12
>Zermatt</TOPONYM>            5
>Zetland</TOPONYM>            1
>Zhizhong</TOPONYM>           1
>Zhongshan</TOPONYM>          2
>Zhuhai</TOPONYM>             1
>Zimbabwe</TOPONYM>         377
>Znamenskoye</TOPONYM>        1
>Zoetermeer</TOPONYM>         1
>Zola</TOPONYM>               1
>Zomba</TOPONYM>              3
>Zulu</TOPONYM>               1
>Zululand</TOPONYM>           2
>Zuni</TOPONYM>               2
>Zurich</TOPONYM>            86
>Zvornik</TOPONYM>            3
>Zwolle</TOPONYM>             1
Name: name, Length: 8585, dtype: int64
导入熊猫
pandas.read_csv('a.csv',sep=','
df.groupby('name').name.count()
名称
>Aa 4
>亚琛5号
>阿尔茨拉尔1号
>阿巴丹1号
>阿巴亚1号
>阿巴12
>修道院2
>阿贝代尔1号
>方丈2
>方丈3
>阿博茨福德22
>阿博特辛奇5号
>阿伯特1
>亚伯1
>阿伯奇尔德2号
>阿伯代尔3号
>香港仔1
>香港仔163
>阿伯丁郡286
>阿伯杜尔9
>阿伯凡1号
>阿伯费尔迪16
>阿伯加文尼4
>第一夫人
>阿伯拉夫人3
>阿伯内西1号
>阿伯泰1号
>阿伯蒂勒里6号
>Abha 2
>阿比让10
... 
>扎胡20
>扎科帕内1号
>赞比西2号
>赞比西8
>赞比亚19
>三宝颜4号
>赞达克3
>桑给巴尔11
>萨拉戈萨1号
>萨拉戈萨4
>泽布鲁格28
>泽兰2号
>泽蒙1号
>泽尼卡12号
>泽马特5号
>泽特兰1号
>志中1号
>中山2号
>珠海1
>津巴布韦377
>Znamenskoye 1
>佐特米尔1号
>左拉1
>宗巴3号
>祖鲁1号
>祖鲁兰2号
>祖尼2号
>苏黎世86
>兹沃尼克3号
>Zwolle 1
名称:名称,长度:8585,数据类型:int64
是否可以一个字母一个字母地获取计数,首先我应该用字母a运行命令,它应该用a给出所有值,然后是b,依此类推。或者,如果有可能获得跳过100个值的值

我的真实数据如下所示:

<TOPONYM    geonameid="2657540" lat="51.24827"  lon="-0.76389"  >Aldershot</TOPONYM>    
<TOPONYM    geonameid="3037854" lat="49.9"  lon="2.3"   >Amiens</TOPONYM>   
<TOPONYM    geonameid="6216857" lat="-43.59832" lon="171.55011" >Alaska</TOPONYM>   
<TOPONYM    geonameid="3037854" lat="49.9"  lon="2.3"   >Amiens</TOPONYM>   
<TOPONYM    geonameid="2759794" lat="52.37403"  lon="4.88969"   >Amsterdam</TOPONYM>    
<TOPONYM    geonameid="7216668" lat="28.0106"   lon="-82.1184"  >Alabama</TOPONYM>  
<TOPONYM    geonameid="5884078" lat="48.98339"  lon="-73.34907" >Ally</TOPONYM> 
<TOPONYM    geonameid="2507480" lat="36.7525"   lon="3.04197"   >Algiers</TOPONYM>  
<TOPONYM    geonameid="2759794" lat="52.37403"  lon="4.88969"   >Amsterdam</TOPONYM>    
<TOPONYM    geonameid="2759794" lat="52.37403"  lon="4.88969"   >Amsterdam</TOPONYM>    
Aldershot
亚眠
阿拉斯加州
亚眠
阿姆斯特丹
阿拉巴马州
盟友
阿尔及尔
阿姆斯特丹
阿姆斯特丹

您可以使用选择首字母by
str[1]
然后使用:

第二个字母表示的其他解决方案:

a = df['name'].groupby(df['name'].str[0]).count().reset_index(name='count')


“SeriesGroupBy”对象没有属性“counts”。这是我收到的错误,我添加了解决方案,而不是
df.groupby('name').name.count()
,所以请尝试删除它。我运行了此操作,它既没有给出错误,也没有给出任何结果。第一个表示没有数据,第二个需要
df=df[df['name'].str.contains('Amsterdam',na=False)]
typo,需要
pandas.set\u选项
a = df['name'].groupby(df['name'].str[0]).count().reset_index(name='count')
a = df['name'].groupby(df['name'].str[0]).size().reset_index(name='count')