pandas

2018-06-03  本文已影响0人  临渊如峙

pandas之初窥门径

1、pandas声明

address_list = ['广东', '浙江', '广东', '浙江', '浙江', '广东', '广东', '广东', '广东', '广东']
sale_list = [1270.4, 4499.0, 1490.0, 127.5, 127.8, 1080.0, 1080.0, 1580.0, 3080.0, 480.0]
dataset = DataFrame({'address': address_list, "sale":sale_list})
<class 'pandas.core.frame.DataFrame'>
print(dataset)
  address    sale
0      广东  1270.4
1      浙江  4499.0
2      广东  1490.0
3      浙江   127.5
4      浙江   127.8
5      广东  1080.0
6      广东  1080.0
7      广东  1580.0
8      广东  3080.0
9      广东   480.0
[['广东', 1437.2], ['浙
print(dataset.values)
[['广东' 1270.4]
 ['浙江' 4499.0]
 ['广东' 1490.0]
 ['浙江' 127.5]
 ['浙江' 127.8]
 ['广东' 1080.0]
 ['广东' 1080.0]
 ['广东' 1580.0]
 ['广东' 3080.0]
 ['广东' 480.0]]

2、pandas条件过滤,

print(dataset[dataset.sale < 200])
address   sale
3      浙江  127.5
4      浙江  127.8

print(dataset[(dataset.sale > 1000) & (dataset.sale < 3000)])
 address    sale
0      广东  1270.4
2      广东  1490.0
5      广东  1080.0
6      广东  1080.0
7      广东  1580.0

print(dataset[(dataset.sale < 200) | (dataset.sale > 3000)])
address    sale
1      浙江  4499.0
3      浙江   127.5
4      浙江   127.8
8      广东  3080.0

3、pandas函数

address_list = ['广东', '浙江', '广东', '浙江', '浙江', '广东', '广东', '广东', '广东', '广东']
price_list = [1270.4, 4499.0, 1490.0, 127.5, 127.8, 1080.0, 1080.0, 1580.0, 3080.0, 480.0]
dataset = DataFrame({'address': address_list, "price": price_list})
# 分组
data_p = dataset.groupby('address')
# 求和
data_p = dataset.groupby('address', as_index=False).sum()
print(data_p)
address    price
0      广东  10060.4
1      浙江   4754.3
# 平均值
data_p = dataset.groupby('address', as_index=False).mean()
print(data_p)
address        price
0      广东  1437.200000
1      浙江  1584.766667

3、pandas转成list

df = DataFrame(data_p).values.tolist()
print(df)
[['广东', 1437.2], ['浙江', 1584.7666666666667]]

print(type(df))
<class 'list'>
##4、精度
data_p[['price']] = data_p[['price']].apply(np.round)
my_list = DataFrame(data_p).values.tolist()
print(my_list)
[['广东', 1437.0], ['浙江', 1585.0]]
上一篇下一篇

猜你喜欢

热点阅读