介绍
我希望本指南能成为一个轻松的快速参考手册,以刷新您在Pandas中的数据处理技能。
注意: 您可以随意使用任何数据集。
Pandas常用关键字:
Dataframe: 类似于电子表格的数据的二维结构
Series: 固定数据类型的一维索引数组
首先,让我们加载pandas
<code>import pandas as pd
url = “https://raw.githubusercontent.com/jokecamp/FootballData/master/Germany/Bundesliga/1964/matches.csv"/<code>
- 您可以从Internet加载数据而无需下载
<code>data = pd.read_csv(url)
data.head()/<code>
从url读取数据
(注意:tail()命令从tail中选择行,您也可以将数字参数传递给head和tail命令)
您可以对pandas使用一些 exploratory data analysis(EDA) commands:
<code># print column names
data.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()/<code>
- DataFrame Indexing
可以通过列名(label),行名(index)或行的序列号对DataFrame进行索引。
loc: 按名称索引
<code># Get 5 rows from home_score column to away_team column
data.loc[0:5, ‘home_score’:’away_team’]/<code>
iloc: 按数字索引
<code># Same thing as above but using numbers
data.iloc[0:5, 2:5]/<code>
2.更改列中的值
<code>data[‘away_score’] = data[‘away_score’].apply(lambda x: x*2)ORdata[‘away_score’] = data[‘away_score’].str.split(“ “)/<code>
将away_score列加倍
3.添加新列
<code>data[‘new_coumn’] = [i+1000 for i in range(len(data))]/<code>
(注意:使用数组添加新列不是唯一的方法,但是您也可以使用pandas的Series对象在数据框中创建列。)
4.将function应用于多列
<code>data[[‘away_score’,’new_coumn’]] = data[[‘away_score’,’new_coumn’]].apply(lambda x: x*2)/<code>
(注意:您只需要传递要修改的列的列表即可。)
5.用NaN计数行
看看有多少行为空
6.选择NaN行并进行一些操作
选择带有Nan的注释列的行
重要提示:填充NaN行是单独的主题,不在本文的讨论范围之内。填充缺失值的方法有很多,例如用均值,中位数,最高频率等填充。但是,如果要填充一些恒定值,则非常简单:
<code>data.fillna(0)/<code>
7.选择非NaN行并进行一些操作
<code>data[data[‘notes’].notnull()]/<code>
选择带有非nan值的注释列的行
8.填充NaN行
<code>data.fillna(value = “Replace NaN”, inplace = True)/<code>
用“ Replace Nan”字符串替换nan值
9.将行追加到数据框
<code>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)/<code>
将行追加到Dataframe
10.排序并重新索引数据框
<code>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()/<code>
按降序排序
11.更新列
<code>data.index = range(1, len(data)+1)data.head()/<code>
排序后重新索引数据框
12.使用按位运算的链接条件
<code>data[(data[‘notes’] == “Replace NaN”) & (data[‘round’] > 25)]Note: Use | for OR conidtion/<code>
在数据框的列上应用和操作
13.打印列类型
(注意:对于字符串,它使用的是“对象”数据类型)
14.按列类型选择
<code>import numpy as np
data.loc[:, (data.dtypes == np.dtype(‘O’)).values].head()# Note: ‘O’ means object type. if you want floats use ‘float64’ #instead./<code>
选择对象数据类型
15.转换列类型
<code>data[‘away_score’] = data[‘away_score’].astype(float)/<code>
16.条件测试
<code>mydata = [ [1,2,3], [4,5,6] ]
df = pd.DataFrame(mydata)
df < 2/<code>
如果在数据框上测试
17.迭代数据框上的行
注意:我不建议您在数据帧的行上循环并执行操作,但是如果有必要您必须进行迭代,请使用以下方法:
<code>for index, row in data.iterrows():
name = row[‘name’]
age = row[‘age’]
# do some operation/<code>
18.将数据框导出为CSV
如果您想与团队中的某人共享结果,请先做,然后以CSV格式导出结果,然后将其导入到Google表格中并共享:
<code>data.to_csv(‘result_file.csv’)/<code>
总结:
本文是快速入门,可以帮助您完善使用Pandas数据框的概念。、
如果您喜欢我的文章,请不要忘记在媒体上关注我。
閱讀更多 數據大視界 的文章
關鍵字: 2019未来科学大奖 参考手册 数据处理