pandas基本操作整理

pandas学习笔记

本篇文章是由kaggle网站上的pandas教程整理得到,学习过程中走一遍教程中的例程真的帮助很大。在这里将教程中所涉及的操作整理如下,便于后续查找使用。

Series和DataFrame是Pandas中最常用的两个对象。

1.创建,读取和写入工作簿

read_csv()从csv文件读取数据,describe()获得dataFrame数据的基本信息,如元素个数count,均值mean,中位数50%,例:

# save filepath to variable for easier access
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
# read the data and store data in DataFrame titled melbourne_data
melbourne_data = pd.read_csv(melbourne_file_path) 
# print a summary of the data in Melbourne data
melbourne_data.describe()
RoomsPriceDistancePostcode
count13580.0000001.358000e+0413580.00000013580.000000
mean2.9379971.075684e+0610.1377763105.301915
std0.9557486.393107e+055.86872590.676964
min1.0000008.500000e+040.0000003000.000000
25%2.0000006.500000e+056.1000003044.000000
50%3.0000009.030000e+059.2000003084.000000
75%3.0000001.330000e+0613.0000003148.000000
max10.0000009.000000e+0648.1000003977.000000

pd.DataFrame创建一个DataFrame

fruit_sales = pd.DataFrame({"Apples":[35,41] , "Bananas":[21,34]},index = ["2017 Sales", "2018 Sales"])
ApplesBananas
2017 Sales3521
2018 Sales4134

pd.Series创建一个Series

quantities = ["4 cups","1 cup","2 large","1 can"]
items = ["Flour","Milk","Eggs","Spam"]
ingredients = pd.Series(quantities, index = items , name = "Dinner",dtype = object)

to_csv将DataFrame保存为csv文件

2. 索引,选择和分配

iloc[ ]访问DataFrame某行元素,例

first_row = reviews.iloc[0]
sample_reviews = reviews.iloc[[1,2,3,5,8]]

loc[]访问DataFrame中的制定行和列,例

cols = ['country','province','region_1','region_2']
indices = [0,1,10,100]
df = reviews.loc[indices,cols]

ilocloc区别:

对于0:10iloc表示0,1,...9,而loc表示0,1...,10

访问某一列中指定元素

italian_wines = reviews.loc[reviews.country=='Italy']

top_oceania_wines = reviews.loc[(reviews.country.isin(['Australia','New Zealand']))&(reviews.points>=95)]

3. 统计函数

median()计算中位数

unique()统计所含元素的具体值

value_counts统计元素出现次数

mean()求均值,例

#0均值处理
centered_price = reviews.price-reviews.price.mean()

idxmax()获取最大的元素的index

apply()在dataFrame上执行预先定义好的操作,例

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')

4. 分组和排序

groupby统计DataFrame中出现的元素,并创建一个Series,使用时需和size()count()结合,例

reviews_written = reviews.groupby('taster_twitter_handle').size()

reviews_written = reviews.groupby('taster_twitter_handle').taster_twitter_handle.count()

groupby还可以统计DataFrame成对出现的元素,列

#统计了country列和variety列中成对出现的元素
country_variety_counts = reviews.groupby(['country','variety']).size().sort_values(ascending = False)

agg()对列的聚合操作,例

price_extremes = reviews.groupby('variety').price.agg([min,max])

sort_values()进行排序

包含两个参数byascending,by表示参考排序的列,传入的元素可以是一个list,list第一个元素表示主参考列,第二个元素表示第二参考列,当主参考列的元素相同时,才比较第二参考列的元素,ascending表示升序

sorted_varieties = price_extremes.sort_values(by=['min', 'max'], ascending=False)

mean()求均值操作

5. 数据类型和丢失数据处理

dtype是DataFrame或Series类型数据的属性,可直接访问

astype()函数执行数据类型转换,函数的传入变量为目标数据类型,如str为string类型

isnull()判断DataFrame中是否包含缺失元素,返回结果为对应于DataFrame元素相应位置的True或者False。两种使用形式

reviews.price.isnull()
pd.isnull(reviews.price)

fillna()对缺失数据进行填充,函数的传入变量为填充数据,如0,‘unknown’

6. 重命名和合并工作簿

rename()可以进行列的重命名操作,例

#将reviews复制给renamed,并将其中两列重命
renamed = reviews.rename(columns = dict(region_1='region',region_2='locale'))

rename_axis将index重新命名,例

reindexed = reviews.rename_axis('wines',axis = 'rows')

concat()将两个DataFrame按行合并在一起,例

combined_products = pd.concat([gaming_products,movie_products])

join()将两个DataFrame按列合并在一起,需要注意的是两个DataFrame的index必须要相同,可以配合set_index指定index进行合并

#将powerlifting_meets和powerlifting_competitors按行合并在一起,设置了index为"MeetID"
powerlifting_combined = powerlifting_meets.set_index("MeetID").join(powerlifting_competitors.set_index("MeetID"))
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值