甘青宁科技网

我们将调用pivot_table()函数并设置以下参数:index

简介: 我们将调用pivot_table()函数并设置以下参数:index设置为 'Sex',因为这是来自df的列,我们希望在每一行中出现一个唯一的值values值为'Physics','Chemistry' ,因为这是我们想

这不是一个全面的列表,但包含了我在构建机器学习模型中最常用的函数。

让我们开始吧!本附注的结构:导入数据导出数据创建测试对象查看/检查数据选择查询数据清理筛选、排序和分组统计数据首先,我们需要导入pandas开始:import pandas as pd导入数据使用函数pd.read_csv直接将CSV转换为数据格式。

# Load data df = pd.read_csv('filename.csv') # From a CSV filedf = pd.read_excel('filename.xlsx') # From an Excel file导出数据tocsv()将数据存储到本地的文件。

我们还可以使用df.to_excel()保存和写入一个DataFrame到Excel文件或Excel文件中的一个特定表格。

df.to_csv('filename.csv') # Write to a CSV filedf.to_excel('filename.xlsx') # Write to an Excel file创建测试对象从输入的数据建立一个DataFrame# Build data frame from inputted datadf = pd.DataFrame(data = {'Name': ['Bob', 'Sally', 'Scott', 'Katie'],'Physics': [68, 74, 77, 78], 'Chemistry': [84, 100, 73, 90], 'Algebra': [78, 88, 82, 87]})或者从列表中创建一个series# Create a series from an iterable my_listmy_list = [['Bob',78],['Sally',91], ['Scott',62], ['Katie',78], ['John',100]]df1 = pd.Series(my_list) # Create a series from an iterable my_list查看/检查数据head():显示DataFrame中的前n条记录。

我经常把一个数据档案的最上面的记录打印在我的jupyter notebook上,这样当我忘记里面的内容时,我可以回头查阅。

df.head(3) # First 3 rows of the DataFrametail():返回最后n行。

df.tail(3) # Last 3 rows of the DataFrame添加或插入行要向DataFrame追加或添加一行,我们将新行创建为Series并使用append()方法。

, n-1,当连接的数据使用自动索引信息时,这很有用。

append() 方法的作用是:返回包含新添加行的DataFrame。

#Append row to the dataframe, missing data (np.nan)new_row = {'Name':'Max', 'Physics':67, 'Chemistry':92, 'Algebra':np.nan}df = df.append(new_row, ignore_index=True)向DataFrame添加多行# List of series list_of_series = [pd.Series(['Liz', 83, 77, np.nan], index=df.columns),pd.Series(['Sam', np.nan, 94,70], index=df.columns ), pd.Series(['Mike', 79,87,90], index=df.columns), pd.Series(['Scott', np.nan,87,np.nan], index=df.columns),]# Pass a list of series to the append() to add multiple rowsdf = df.append(list_of_series , ignore_index=True)我们也可以添加新的列# Adding a new column to existing DataFrame in Pandassex = ['Male','Female','Male','Female','Male','Female','Female','Male','Male']df['Sex'] = sexinfo()函数用于按列获取标题、值的数量和数据类型等一般信息。

df.info() #Index, Datatype and Memory information# Check data type in pandas dataframedf['Chemistry'].dtypes >>> dtype('int64')# Convert Integers to Floats in Pandas DataFramedf['Chemistry'] = df['Chemistry'].astype(float) df['Chemistry'].dtypes>>> dtype('float64')# Number of rows and columnsdf.shape >>> (9, 5)value_counts()函数的作用是:获取一系列包含唯一值的计数。

# View unique values and counts of Physics columndf['Physics'].value_counts(dropna=False)选择在训练机器学习模型时,我们需要将列中的值放入X和y变量中。

df['Chemistry'] # Returns column with label 'Chemistry' as Seriesdf[['Name','Algebra']] # Returns columns as a new DataFramedf.iloc[0] # Selection by positiondf.iloc[:,1] # Second column 'Name' of data framedf.iloc[0,1] # First element of Second column>>> 68.0数据清理rename()函数在需要重命名某些选定列时非常有用,因为我们只需要指定要重命名的列的信息。

# Rename columnsdf = df.rename({'Name':'Student','Algebra':'Math'}, axis='columns')在DataFrame中,有时许多数据集只是带着缺失的数据的,或者因为它存在而没有被收集,或者它从未存在过。

NaN(非数字的首字母缩写)是一个特殊的浮点值,所有使用标准IEEE浮点表示的系统都可以识别它pandas将NaN看作是可互换的,用于指示缺失值或空值。

有几个有用的函数用于检测、删除和替换panda DataFrame中的空值。

# Checks for null Values, Returns Boolean Arrraycheck_for_nan = df.isnull()要检查panda DataFrame中的空值,我们使用isnull()或notnull()方法。

在相反的位置,notnull()方法返回布尔值的数据,对于NaN值是假的。

value = df.notnull() # Opposite of df2.isnull()我们使用dropna()函数删除所有缺少值的行。

drop_null_row = df.dropna() # Drop all rows that contain null values有时,我们可能只是想删除缺失值的列。

# Drop all columns that contain null valuesdrop_null_col = df.dropna(axis=1)我们可以使用fillna()来填充缺失的值。

例如,我们可能想用0替换' NaN '。

replace_null = df.fillna(0) # Replace all null values with 0或者用平均值替换NaN。

# Replace all null values with the mean (mean can be replaced with almost any function from the statistics module)df = round(df.fillna(df.mean()),2)方法可用于替换DataFrame中的值one = df.replace(100,'A') # Replace all values equal to 1 with 'one'筛选、排序和分组找到看到物理成绩达到80或80以上的学生fil_80 = df[df['Physics'] > 80]学生在化学考试中得到80分或更高的分数,数学考试中却不到90分fil = df[(df['Chemistry'] > 80) & (df['Math'] < 90)]sort_values ()可以以特定的方式对pandas数据进行排序。

通常回根据一个或多个列的值对panda DataFrame进行排序,或者根据panda DataFrame的行索引值或行名称进行排序。

ascending = df.sort_values('Student')化学分数按降序排列descending = df.sort_values('Chemistry',ascending=False)更复杂一点的,我们希望按物理分数的升序排序,然后按化学分数的降序排序。

df.sort_values(['Physics','Chemistry'],ascending=[True,False])groupby 是一个非常简单的概念。

通过性别进行分组group_by = df.groupby(['Sex']) # Returns a groupby object for values from one columngroup_by.first() # Print the first value in each group计算性别分组的所有列的平均值erage = df.groupby(‘Sex’).agg(np.mean)统计数据我们可能熟悉Excel中的数据透视表,可以轻松地洞察数据。

类似地,我们可以使用panda中可用的pivottable()函数创建Python pivot表。

该函数与groupby()函数非常相似,但是了更多的定制。

我们将调用pivot_table()函数并设置以下参数:index设置为 'Sex',因为这是来自df的列,我们希望在每一行中出现一个唯一的值values值为'Physics','Chemistry' ,因为这是我们想应用一些聚合操作的列aggfunc设置为 'len','np.mean','np.stdpivot_table = df.pivot_table(index='Sex',values=['Physics','Chemistry'], aggfunc=[len, np.mean, np.std])注意:使用len的时候需要假设数据中没有NaN值。

description()用于查看一些基本的统计细节,如数据名称或一系列数值的百分比、平均值、标准值等。

df.describe() # Summary statistics for numerical columns使用max()查找每一行和每列的最大值# Get a series containing maximum value of each rowmax_row = df.max(axis=1)# Get a series containing maximum value of each column without skipping NaNmax_col = df.max(skipna=False)类似地,我们可以使用df.min()来查找每一行或每列的最小值。

corr():返回数据格式中的列之间的相关性。


以上是文章"

我们将调用pivot_table()函数并设置以下参数:index

"的内容,欢迎阅读甘青宁科技网的其它文章