我是
Python的新手,并且有一些基本问题,直到现在我都找不到答案.
假设我有以下名为phone的数据帧.
current_cellphone | months of usage | prevIoUs_cellphone 0 | Motorola | 11 | Motorola 1 | Huawei | 21 | Nokia 2 | Motorola | 13 | Motorola 3 | Nokia | 2 | iphone 4 | Huawei | 20 | Huawei 5 | Motorola | 15 | Motorola 6 | Sony | 9 | HTC
我的主动是按current_cellphone分组,选择那些不止一次的(摩托罗拉和华为).
phone['current_cellphone'].value_counts
结果是
Motorola | 3 Huawei | 2 Nokia | 1
我的第二个问题是:如何检索上表的第一列和第二列?
非常感谢你的帮助..
解决方法
这是
pandas.Series对象.您可以使用
type()找到它.
In [157]: phone Out[157]: current_cellphone | months of usage |.1 prevIoUs_cellphone 0 Motorola | 11 | Motorola NaN NaN 1 Huawei | 21 | Nokia NaN NaN 2 Motorola | 13 | Motorola NaN NaN 3 Nokia | 2 | iphone NaN NaN 4 Huawei | 20 | Huawei NaN NaN 5 Motorola | 15 | Motorola NaN NaN 6 Sony | 9 | HTC NaN NaN In [158]: vc = phone['current_cellphone'].value_counts() In [159]: vc Out[159]: Motorola 3 Huawei 2 Nokia 1 Sony 1 Name: current_cellphone,dtype: int64 In [160]: type(vc) Out[160]: pandas.core.series.Series
要从系列中提取信息:
In [169]: vc.values Out[169]: array([3,2,1,1]) In [170]: vc.keys() Out[170]: Index([u'Motorola',u'Huawei',u'Nokia',u'Sony'],dtype='object') In [176]: vc.to_dict() Out[176]: {'Huawei': 2,'Motorola': 3,'Nokia': 1,'Sony': 1} In [177]: vc.to_dict().keys() Out[177]: ['Nokia','Huawei','Motorola','Sony'] In [178]: vc.to_dict().values() Out[178]: [1,3,1]
转换为数据帧:
In [180]: pd.DataFrame(vc) Out[180]: current_cellphone Motorola 3 Huawei 2 Nokia 1 Sony 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。