Python之Pandas使用系列(十):数据科学家的pandas快速参考手册


Python之Pandas使用系列(十):数据科学家的pandas快速参考手册

介绍

我希望本指南能成为一个轻松的快速参考手册,以刷新您在Pandas中的数据处理技能。

注意: 您可以随意使用任何数据集。

Pandas常用关键字:

Dataframe: 类似于电子表格的数据的二维结构

Series: 固定数据类型的一维索引数组

首先,让我们加载pandas

<code>import pandas as pd
url = “https://raw.githubusercontent.com/jokecamp/FootballData/master/Germany/Bundesliga/1964/matches.csv"/<code>
  1. 您可以从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>
  1. 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数据框的概念。、

如果您喜欢我的文章,请不要忘记在媒体上关注我。


分享到:


相關文章: