我对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
我的第一个问题是:上面的代码是否会生成数据框或系列?
我的第二个问题是:如何检索上表的第一列和第二列?
非常感谢您的帮助..
答案 0 :(得分:4)
它是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, 2, 3, 1]
转换为dataframe:
In [180]: pd.DataFrame(vc)
Out[180]:
current_cellphone
Motorola 3
Huawei 2
Nokia 1
Sony 1
答案 1 :(得分:3)