标签:country price 笔记 reviews points Series Pandas row
本文介绍常用Pandas列(Series)数据特征提取方法
我们以一组酒的数据为例,将数据保存到reviews,然后用heads()预览一下:
import pandas as pd
pd.set_option("display.max_rows", 5)
reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
reviews.head()
后面列出一些针对Series的方法:
- 求平均值
mean_points = reviews.points.means()
- 求中值
median_points = reviews.points.median()
- 输出集合
countries = reviews.country.unique()
这里返回一个list
- 输出元素个数
reviews_per_country = reviews.country.value_counts()
注意输出格式:
US 54504
France 22093
...
China 1
Egypt 1
Name: country, Length: 43, dtype: int64
- 最大索引和最小索引
idxmax()和idxmin()
bargain_idx = (reviews.points / reviews.price).idxmax()
bargain_wine = reviews.loc[bargain_idx, 'title']
- 用map匹配数据
通过lambda函数创建新的Series
price_mean = reviews.price.mean()
centered_price = reviews.price.map(lambda p: p - price_mean)
n_trop = reviews.description.map(lambda desc: "tropical" in desc).sum()
n_fruity = reviews.description.map(lambda desc: "fruity" in desc).sum()
descriptor_counts = pd.Series([n_trop, n_fruity], index=['tropical', 'fruity'])
- 用apply匹配数据
通过传递函数创建新的Series,可以指定对象为行或者列
def stars(row):
if row.country == 'Canada':
return 3
elif row.points >= 95:
return 3
elif row.points >= 85:
return 2
else:
return 1
star_ratings = reviews.apply(stars, axis='columns')
标签:country,price,笔记,reviews,points,Series,Pandas,row 来源: https://www.cnblogs.com/Asp1rant/p/15863986.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。