我正在尝试为初学者解决课程之一。
我已阅读数据并尝试将其转换为下面的代码段中所示。我正在寻找所考虑变量的频率分布,因此我试图对这些值进行舍入。我尝试了几种方法,但没有什么能给我我期待的东西(见下文)..
import pandas as pd
import numpy as np
# loading the database file
data = pd.read_csv('gapminder-2.csv',low_memory=False)
# number of observations (rows)
print len(data)
# number of variables (columns)
print len(data.columns)
sub1 = pd.DataFrame({'income':data['incomeperperson'].convert_objects(convert_numeric=True),
'alcohol':data['alcconsumption'].convert_objects(convert_numeric=True),
'suicide':data['suicideper100th'].convert_objects(convert_numeric=True)})
sub1.apply(pd.Series.round)
income = sub1['income'].value_counts(sort=False)
print income
然而,我得到了
285.224449 1
2712.517199 1
21943.339898 1
1036.830725 1
557.947513 1
我的期望:
285 1
2712 1
21943 1
1036 1
557 1
答案 0 :(得分:0)
您可以实施Series.round()
ser = pd.Series([1.1,2.1,3.1,5.1])
print(ser)
0 1.1
1 2.1
2 3.1
3 5.1
dtype: float64
从此处可以使用.round()
,默认设置为每个文档0
。
print(ser.round())
0 1
1 2
2 3
3 5
dtype: float64
要保存更改,您需要将其重新分配给ser=ser.round()
。