首页 > 其他分享 >深度学习从入门到精通——pandas的基本使用

深度学习从入门到精通——pandas的基本使用

时间:2022-11-01 18:06:28浏览次数:57  
标签:精通 入门 nan DataFrame np pd print pandas kid


kid_diction = {'year': [2012, 2013, 2014,2015,2016,2017],
'city': ['Delhi', 'Bangalore', 'Mumbai', 'Pune', 'Bangalore', 'London'],
'weight': [2.5, 8, 12.5, 14, 16, 25],
'height': [50, 70, 90, 100, 110, 120]}
kid = pd.DataFrame(kid_diction, columns=['year', 'city', 'weight', 'height'])
print(kid)

深度学习从入门到精通——pandas的基本使用_人工智能

查看前两行

kid.head(2)

深度学习从入门到精通——pandas的基本使用_python_02

查看最后两行

print(kid.tail(2))

深度学习从入门到精通——pandas的基本使用_左对齐_03

查看基本信息

kid.info()

深度学习从入门到精通——pandas的基本使用_数据_04

基本数据描述

print(kid.describe())

深度学习从入门到精通——pandas的基本使用_深度学习_05

数据查询

print(kid.iloc[0:4, :2])

深度学习从入门到精通——pandas的基本使用_左对齐_06

查询城市数据

print(kid['city'])

深度学习从入门到精通——pandas的基本使用_左对齐_07

数据求和

kid['weight'].sum()

深度学习从入门到精通——pandas的基本使用_python_08

相关系数矩阵

print(kid.corr())

深度学习从入门到精通——pandas的基本使用_数据_09

删除一行数据

print(kid.drop('city', axis= 1)) # removing city column , axis =1 means column

深度学习从入门到精通——pandas的基本使用_人工智能_10

增加一列数据

kid['BestFriend'] = ['Mom','Dad','Bunty','Jimmy','Chintu','Julie'] # Adding a new column
print(kid)

深度学习从入门到精通——pandas的基本使用_数据_11

pandas 清洗数据

数据生成,例如有nan的数据

import numpy as np
from pandas import Series,DataFrame
import pandas as pd
#Now we'll learn how to deal with missing data, a very common task when analyzing datasets!
data = Series(['one','two', np.nan, 'four'])

深度学习从入门到精通——pandas的基本使用_python_12

# 判断查询空值
data.isnull()

删除空值数据

data.dropna()

深度学习从入门到精通——pandas的基本使用_人工智能_13

部分缺失或者全部缺失处理

# In a DataFrame we need to be a little more careful!
import pandas as pd
dframe = pd.DataFrame([[1,2,3],[np.nan,5,6],[7,np.nan,9],[np.nan,np.nan,np.nan]])

深度学习从入门到精通——pandas的基本使用_数据_14

clean_dframe = dframe.dropna()

深度学习从入门到精通——pandas的基本使用_人工智能_15

全部缺失的数据进行删除

print(dframe.dropna(how='all'))

深度学习从入门到精通——pandas的基本使用_数据_16

指定数据列删除

#Or we can specify to drop columns with missing data
print(dframe.dropna(axis=1))
'''
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3]'''

根据缺失个数来进行删除

#For example if we only want rows with at least 3 data points
dframe2 = DataFrame([[1,2,3,np.nan],[2,np.nan,5,6],[np.nan,7,np.nan,9],[1,np.nan,np.nan,np.nan]])
print(dframe2.dropna(thresh=2))

删除前

深度学习从入门到精通——pandas的基本使用_python_17


删除后

深度学习从入门到精通——pandas的基本使用_深度学习_18

数据补全操作

常值填充

print(dframe2.fillna(1))

根据不同的列来进行填充补值

print(dframe2.fillna({0:0,1:1,2:2,3:3}))

深度学习从入门到精通——pandas的基本使用_python_19

在原数据上进行修改操作

inplace 操作

dframe2.fillna(0,inplace=True)
#Now let's see the dframe
print(dframe2)

数据替换操作

所有列

print(dframe2.replace(1,'one'))

深度学习从入门到精通——pandas的基本使用_深度学习_20


指定特定的列

print(dframe.replace([2,3],['two','three']))

深度学习从入门到精通——pandas的基本使用_左对齐_21

过滤,排序,分组操作

generate data

import numpy as np
import pandas as pd
from pandas import DataFrame, Series
#Let's make a dframe
dframe = pd.DataFrame({'k1':['X','X','Y','Y','Z'],
'k2':['alpha','beta','alpha','beta','alpha'],
'dataset1':np.random.randn(5),
'dataset2':np.random.randn(5)})

#Show
print(dframe)
dframe['dataset1']

深度学习从入门到精通——pandas的基本使用_python_22

根据某个键排序

#Lets grab the dataset1 column and group it by the k1 key
group1 = dframe['dataset1'].groupby(dframe['k1'])
#Show the groupby object
group1 = np.array(group1)
print(group1)

深度学习从入门到精通——pandas的基本使用_深度学习_23

利用多个键排序

#We'll make some arrays for use as keys
cities = np.array(['NY','LA','LA','NY','NY'])
month = np.array(['JAN','FEB','JAN','FEB','JAN'])
#Now using the data from dataset1, group the means by city and month
dframe['dataset1'].groupby([cities,month]).mean()

深度学习从入门到精通——pandas的基本使用_左对齐_24

查看排序后均值

print(dframe.groupby('k1').mean())

深度学习从入门到精通——pandas的基本使用_python_25

print(dframe.groupby(['k1','k2']).mean())

深度学习从入门到精通——pandas的基本使用_人工智能_26


统计分组元素的个数

dframe.groupby(['k1']).size()

深度学习从入门到精通——pandas的基本使用_人工智能_27

合并数据

import numpy as np
import pandas as pd
from pandas import Series, DataFrame
# Let's make a dframe
dframe1 = DataFrame({'key':['X','Z','Y','Z','X','X'],'data_set_1': np.arange(6)})
#Show
print(dframe1)

深度学习从入门到精通——pandas的基本使用_python_28


数据段2

dframe2 = DataFrame({'key':['Q','Y','Z'],'data_set_2':[1,2,3]})
#Show
print(dframe2)

深度学习从入门到精通——pandas的基本使用_深度学习_29


merge

print(pd.merge(dframe1,dframe2))

深度学习从入门到精通——pandas的基本使用_左对齐_30

print(pd.merge(dframe1,dframe2,on='key'))

深度学习从入门到精通——pandas的基本使用_数据_31

左对齐

print(pd.merge(dframe1,dframe2,on='key',how='left'))

深度学习从入门到精通——pandas的基本使用_数据_32


右对齐

print(pd.merge(dframe1,dframe2,on='key',how='right'))

深度学习从入门到精通——pandas的基本使用_深度学习_33


笛卡尔积,两边都有

print(pd.merge(dframe1,dframe2,on='key',how='outer'))

深度学习从入门到精通——pandas的基本使用_python_34

# Nnote that these DataFrames contain more than one instance of the key in BOTH datasets
dframe3 = DataFrame({'key': ['X', 'X', 'X', 'Y', 'Z', 'Z'],
'data_set_3': range(6)})
dframe4 = DataFrame({'key': ['Y', 'Y', 'X', 'X', 'Z'],
'data_set_4': range(5)})
#Show the merge
print(pd.merge(dframe3, dframe4))

深度学习从入门到精通——pandas的基本使用_深度学习_35

# Dframe on left
import pandas as pd
df_left = pd.DataFrame({'key1': ['SF', 'SF', 'LA'],
'key2': ['one', 'two', 'one'],
'left_data': [10,20,30]})
#Dframe on right
df_right = pd.DataFrame({'key1': ['SF', 'SF', 'LA', 'LA'],
'key2': ['one', 'one', 'one', 'two'],
'right_data': [40,50,60,70]})
#Merge
print(pd.merge(df_left, df_right, on=['key1', 'key2'], how='outer'))

深度学习从入门到精通——pandas的基本使用_深度学习_36

# pandas automatically adds suffixes to them
print(pd.merge(df_left,df_right,on='key1'))

深度学习从入门到精通——pandas的基本使用_深度学习_37


指定后缀

# We can also specify what the suffix becomes
print(pd.merge(df_left,df_right, on='key1',suffixes=('_lefty','_righty')))

深度学习从入门到精通——pandas的基本使用_数据_38


标签:精通,入门,nan,DataFrame,np,pd,print,pandas,kid
From: https://blog.51cto.com/u_13859040/5814614

相关文章