![58eaf74269918498eb46188ecd87b197.png](https://i-blog.csdnimg.cn/blog_migrate/10808ba733e576bf0405fc44f0348321.jpeg)
介绍
我希望本指南能成为一个轻松的快速参考手册,以刷新您在Pandas中的数据处理技能。
注意: 您可以随意使用任何数据集。
Pandas常用关键字:
Dataframe: 类似于电子表格的数据的二维结构
Series: 固定数据类型的一维索引数组
首先,让我们加载pandas
import pandas as pdurl = “https://raw.githubusercontent.com/jokecamp/FootballData/master/Germany/Bundesliga/1964/matches.csv"
- 您可以从Internet加载数据而无需下载
data = pd.read_csv(url)data.head()
从url读取数据
(注意:tail()命令从tail中选择行,您也可以将数字参数传递给head和tail命令)
您可以对pandas使用一些 exploratory data analysis(EDA) commands:
# print column namesdata.columns# print general information about dataframedata.info()# STATISTICS of non-numerical fields (explicitely indicate data #types of interest in include parameterdata.describe(include=[‘object’, ‘bool’])#(Also don’t forget to try with only describe())# For categorical(type object) and boolean(type bool) features, we #can use value_counts method to count the number of values.data[‘home_team’].value_counts()# If you want to calculate porportions try this:data[‘home_team’].value_counts(normalize=True)# Get min and max value from columndata[‘round’].min()data[‘round’].max()# Calculate mean of a columndata[‘round’].mean()
- DataFrame Indexing
可以通过列名(label),行名(index)或行的序列号对DataFrame进行索引。
loc: 按名称索引
# Get 5 rows from home_score column to away_team columndata.loc[0:5, ‘home_score’:’away_team’]
iloc: 按数字索引
# Same thing as above but using numbersdata.iloc[0:5, 2:5]
2.更改列中的值
data[‘away_score’] = data[‘away_score’].apply(lambda x: x*2)ORdata[‘away_score’] = data[‘away_score’].str.split(“ “)
将away_score列加倍
3.添加新列
data[‘new_coumn’] = [i+1000 for i in range(len(data))]
(注意:使用数组添加新列不是唯一的方法,但是您也可以使用pandas的Series对象在数据框中创建列。)
4.将function应用于多列
data[[‘away_score’,’new_coumn’]] = data[[‘away_score’,’new_coumn’]].apply(lambda x: x*2)
(注意:您只需要传递要修改的列的列表即可。)
5.用NaN计数行
看看有多少行为空
6.选择NaN行并进行一些操作
选择带有Nan的注释列的行
重要提示:填充NaN行是单独的主题,不在本文的讨论范围之内。填充缺失值的方法有很多,例如用均值,中位数,最高频率等填充。但是,如果要填充一些恒定值,则非常简单:
data.fillna(0)
7.选择非NaN行并进行一些操作
data[data[‘notes’].notnull()]
选择带有非nan值的注释列的行
8.填充NaN行
data.fillna(value = “Replace NaN”, inplace = True)
用“ Replace Nan”字符串替换nan值
9.将行追加到数据框
data = data.append({ “round”: 5, “home_team”: “Some name”, “home_score”: 0, “away_score”: 50, “away_team”: “some team”, “notes”: “nothing”, “new_coumn”: “Nothing”}, ignore_index=True)data.tail(5)
将行追加到Dataframe
10.排序并重新索引数据框
data = data.sort_values([‘round’], ascending=False)# If you want to sort by multiple columns, just pass list of columnsdata = data.sort_values(by=[‘round’, ‘away_score’], ascending=[1,0])data.head()
按降序排序
11.更新列
data.index = range(1, len(data)+1)data.head()
排序后重新索引数据框
12.使用按位运算的链接条件
data[(data[‘notes’] == “Replace NaN”) & (data[‘round’] > 25)]Note: Use | for OR conidtion
在数据框的列上应用和操作
13.打印列类型
(注意:对于字符串,它使用的是“对象”数据类型)
14.按列类型选择
import numpy as npdata.loc[:, (data.dtypes == np.dtype(‘O’)).values].head()# Note: ‘O’ means object type. if you want floats use ‘float64’ #instead.
选择对象数据类型
15.转换列类型
data[‘away_score’] = data[‘away_score’].astype(float)
16.条件测试
mydata = [ [1,2,3], [4,5,6] ]df = pd.DataFrame(mydata)df < 2
如果在数据框上测试
17.迭代数据框上的行
注意:我不建议您在数据帧的行上循环并执行操作,但是如果有必要您必须进行迭代,请使用以下方法:
for index, row in data.iterrows(): name = row[‘name’] age = row[‘age’] # do some operation
18.将数据框导出为CSV
如果您想与团队中的某人共享结果,请先做,然后以CSV格式导出结果,然后将其导入到Google表格中并共享:
data.to_csv(‘result_file.csv’)
总结:
本文是快速入门,可以帮助您完善使用Pandas数据框的概念。、
如果您喜欢我的文章,请不要忘记在媒体上关注我。