pandas是使数据分析分析工作变得更快更简单的高级数据结构和操作工具,是数据分析师必须要熟练掌握的,现将pandas学习资料整理如下:
pandas数据与查看
1.1数据抽样
head(n)查看前n行的数据,图例就是演示的展示前2行的数据。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df,df.head(2))
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
w y z
a 0 1 2
b 3 4 5
tail(n)查看后n行的数据,图例就是演示的展示后2行的数据。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df,df.tail(2))
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
w y z
c 6 7 8
d 9 10 11
sample(n)就是随机取n行,图例就是演示的随机展示2行的数据。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df,df.sample(2))
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
w y z
d 9 10 11
a 0 1 2
1.2查看数据属性
- shape 查看数据维度,行列数。图例DataFrame是4行3列,因此输出(4,3)。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df)
print(df.shape)
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
(4, 3)
- index查看行索引。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df)
print(df.index)
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
Index(['a', 'b', 'c', 'd'], dtype='object')
- columns查看列索引。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df)
print(df.columns)
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
Index(['w', 'y', 'z'], dtype='object')
- dtypes查看数据类型。常见的有以下5种类型:
object -- 代表了字符串类型
int -- 代表了整型
float -- 代表了浮点数类型
datetime -- 代表了时间类型
bool -- 代表了布尔类型
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df)
print(df.dtypes)
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
w int32
y int32
z int32
dtype: object
- values查看DataFrame中的数值。数据保存在list中。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df)
print(df.values)
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
- info整体属性查看。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(12).reshape(4,3),index=list("abcd"),columns=['w','y','z'])
print(df)
print(df.info())
out:
w y z
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
<class 'pandas.core.frame.DataFrame'>
Index: 4 entries, a to d
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 w 4 non-null int32
1 y 4 non-null int32
2 z 4 non-null int32
dtypes: int32(3)
memory usage: 80.0+ bytes
None
1.3数据特征查看
- unique查看某列有哪些不同值,相当于SQL种的distinct。nunique可以计算不同值的个数。
import pandas as pd
import numpy as np
data=pd.DataFrame({'qu1':[1,3,4,3,4],
'qu2':[2,3,1,2,3],
'qu3':[1,5,2,4,4]})
print(data)
print(data['qu1'].unique())
print(data['qu1'].nunique())
out:
qu1 qu2 qu3
0 1 2 1
1 3 3 5
2 4 1 2
3 3 2 4
4 4 3 4
[1 3 4]
3
- value_counts,不同值的计数。
import pandas as pd
import numpy as np
data=pd.DataFrame({'qu1':[1,3,4,3,4],
'qu2':[2,3,1,2,3],
'qu3':[1,5,2,4,4]})
print(data)
print(data['qu1'].value_counts())
out:
qu1 qu2 qu3
0 1 2 1
1 3 3 5
2 4 1 2
3 3 2 4
4 4 3 4
4 2
3 2
1 1
- duplicated查看数据是否有重复样本。
- duplicated(subset=None, keep='first’) Subset 是否只需要检查某几列
- Keep First:支持从前向后, 将后出现的相同行判断为重复值。 Last:和从后向前。
- 返回值:对每一行返回一个bool值
import pandas as pd
import numpy as np
data=pd.DataFrame({'qu1':[1,3,4,3,4],
'qu2':[2,3,1,2,3],
'qu3':[1,5,2,4,4]})
print(data)
print(data['qu1'].duplicated())
out:
qu1 qu2 qu3
0 1 2 1
1 3 3 5
2 4 1 2
3 3 2 4
4 4 3 4
0 False
1 False
2 False
3 True
4 True
Name: qu1, dtype: bool
1.4合计信息查看
- describe查看数据 的整体合计信息。
- describe(percentiles=None, include=None, exclude=None)
- Percentiles 要显示的百分位数[.25, .5, .75]
- include 需要显示什么类型的数据
- exclude 不需要显示什么类型的数据
import pandas as pd
import numpy as np
data=pd.DataFrame({'qu1':[1,3,4,3,4],
'qu2':[2,3,1,2,3],
'qu3':[1,5,2,4,4]})
print(data)
print(data.describe())
out:
qu1 qu2 qu3
0 1 2 1
1 3 3 5
2 4 1 2
3 3 2 4
4 4 3 4
qu1 qu2 qu3
count 5.000000 5.00000 5.000000
mean 3.000000 2.20000 3.200000
std 1.224745 0.83666 1.643168
min 1.000000 1.00000 1.000000
25% 3.000000 2.00000 2.000000
50% 3.000000 2.00000 4.000000
75% 4.000000 3.00000 4.000000
max 4.000000 3.00000 5.000000
- 单列信息统计方法。
例如:
import pandas as pd
import numpy as np
data=pd.DataFrame({'qu1':[1,3,4,3,4],
'qu2':[2,3,1,2,3],
'qu3':[1,5,2,4,4]})
print(data)
print(data['qu1'].mean())
print(data['qu1'].sum())
print(data['qu1'].min())
print(data['qu1'].max())
print(data['qu1'].count())
out:
qu1 qu2 qu3
0 1 2 1
1 3 3 5
2 4 1 2
3 3 2 4
4 4 3 4
3.2------>>第一列平局值
15------>>第一列平局和
1------>>第一列最小值
4------>>第一列最大值
5------>>第一列计数