【问题标题】:Pandas: Printing the Names and Values in a SeriesPandas:以一系列方式打印名称和值
【发布时间】:2015-08-11 23:06:05
【问题描述】:

当我使用时:

w = y.groupby['A'].size()

它给了我列 A 的列值,然后是它旁边分组的大小。 使用 w ( a Series ),如何分别打印分组的名称? 分组的值可以通过:

for i in w :
    print(i)

但我不知道如何获取名称。

【问题讨论】:

    标签: python database python-3.x pandas


    【解决方案1】:

    您可以使用 iteritems() 迭代系列

    In [100]: for index, val in w.iteritems():
       .....:     print index, val
       .....:
    

    其中,index 有列名,val 值/大小

    【讨论】:

      【解决方案2】:

      系列的index 成员是“名称”,所以:

      for name, val in w.index:
          print name
      

      将遍历名称。对于两者,您都可以使用

      import itertools
      
      for name, val in itertools.izip(w.index, w):
          print name, val
      

      【讨论】:

      • AttributeError: 'module' 对象没有属性 'izip'
      • 取决于你的 Python 版本,可能是zip
      【解决方案3】:

      在 python 3 中,以下工作正常:

      In [31]:
      df = pd.DataFrame({"A":["a","b","c","a"]})
      w = df.groupby('A').size()
      w
      
      Out[31]:
      A
      a    2
      b    1
      c    1
      dtype: int64
      
      In [61]:
      for i,r in w.items():
          print(i,r)
      ​
      a 2
      b 1
      c 1
      

      iterkv 也是如此:

      In [62]:
      for i,r in w.iterkv():
          print(i,r)
      a 2
      b 1
      c 1
      

      然而,可移植的方法(也适用于 python 2)是使用iteritems

      【讨论】:

        猜你喜欢
        • 2014-08-12
        • 2017-12-20
        • 2016-09-18
        • 2010-11-12
        • 1970-01-01
        • 2021-04-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多