Numpy和Pandas的学习总结

1、创建一个二维数组

np.array()

import numpy as np
array = np.array([[1, 2, 3],
                  [2, 3, 4]])
print(array)
print("number of dim:", array.ndim)  #数组有几行,就是几维  这里为2行(2维)
print("shape:", array.shape)  #数组形状,二行三列
print("size:", array.size)  #有多少元素在数组中

2、创建

np.zeros(); np.ones(); np.empty(); np.arange(); np.linspace();

import numpy as np
a = np.array([1, 2, 3, 4], dtype=np.int)  #dtype数组元素为什么类型,例如,int float
a = np.array([1, 2, 3, 4], dtype=np.int64)  #现在为np.int_  代表32位, np.int64  代表63位
print(a.dtype)

b = np.zeros((3, 4))   #定义3行4列全为0的矩阵
print(b)

c = np.ones( (3, 4), dtype=np.int16)  #定义3行4列全为1的矩阵
print(c)

d = np.empty( (3, 4))  #生成什么都没有的空矩阵,实际值无限接近0
print(d)

e = np.arange(10, 20, 2)  #取值[10,20],步长为2
print("这里是e:\n", e)

f = np.arange(12).reshape( (3, 4)) #生成12个元素,矩阵为3行4列
print("这里是f:\n", f)

g = np.linspace(1, 10, 20)   #生成[1,10]数列(线段),有20段
print("g:\n", g)

g = np.linspace(1, 10, 20).reshape( (4, 5))   #生成[1,10]数列(线段),有20段,矩阵为4行5列
print("g:\n", g)

3、矩阵的基本运算

np.arange(4).reshape( (2,2));
np.dot(a, b) #矩阵相乘
np.random.random((2,4)) 随机生成一个矩阵

import numpy as np
a = np.array([10, 20, 30, 40])
b = np.arange(4)   #生成0-3的矩阵
print(a, b)
c = a-b
print(c)

c= b**4 #b矩阵的4次方
print(c)

c = 10*np.sin(a)
print(c)

print(b<3) a="np.array([[1," 1], [0, 1]]) b="np.arange(4).reshape(" (2,2)) print(a) print(b) #乘法 c="a*b" #逐个相乘 c_dot="np.dot(a," b) #矩阵相乘 c_dot_2="a.dot(b)" #和上面计算相同 print("乘法\n", c) print(c_dot) print(c_dot_2) #随机生成一个矩阵 print("随机生成矩阵:", a) print(np.sum(a)) print(np.min(a)) print(np.max(a)) print(np.sum(a, axis="1))" #axis="1&#x4EE3;&#x8868;&#x6BCF;&#x4E00;&#x884C;&#x7684;&#x503C;" print(np.min(a, < code></3)>
import numpy as np

A = np.arange(2, 14).reshape((3, 4))
print(np.argmin(A))  #A&#x77E9;&#x9635;&#x6700;&#x5C0F;&#x503C;&#x7684;&#x7D22;&#x5F15;&#xFF08;&#x5373;&#x5750;&#x6807;&#xFF09;
print(np.mean(A))    #A&#x77E9;&#x9635;&#x7684;&#x5E73;&#x5747;&#x503C;
print(A.mean())    #A&#x77E9;&#x9635;&#x7684;&#x5E73;&#x5747;&#x503C;
print(np.median(A))    #&#x77E9;&#x9635;&#x7684;&#x4E2D;&#x4F4D;&#x6570;
print(np.cumsum(A))    #A&#x77E9;&#x9635;&#x9010;&#x6B65;&#x7D2F;&#x52A0;&#x7684;&#x8FC7;&#x7A0B;
print(np.diff(A))    #A&#x77E9;&#x9635;&#x9010;&#x6B65;&#x7D2F;&#x5DEE;&#xFF08;&#x51CF;&#xFF09;&#x7684;&#x8FC7;&#x7A0B;
print(np.nonzero(A))   #A&#x77E9;&#x9635;&#x975E;0&#x7684;&#x6570;
print(np.sort(A))    #A&#x77E9;&#x9635;&#x6392;&#x5E8F;
print(np.transpose(A))   #A&#x77E9;&#x9635;&#x7684;&#x53CD;&#x5411;&#xFF0C;&#x884C;&#x53D8;&#x4E3A;&#x5217;&#xFF0C;&#x5217;&#x53D8;&#x4E3A;&#x884C; &#xFF0C;&#x8F6C;&#x7F6E;
print(np.clip(A, 5, 9))  #A&#x77E9;&#x9635;&#x7684;&#x6240;&#x6709;&#x5C0F;&#x4E8E;5&#x7684;&#x6570;&#x90FD;&#x7B49;&#x4E8E;5&#xFF0C;&#x5927;&#x4E8E;9&#x7684;&#x6570;&#x90FD;&#x7B49;&#x4E8E;9

5、矩阵的显示

import numpy as np

A = np.arange(3, 15)
print(A)
print(A[2])

A = np.arange(3, 15).reshape((3, 4))
print(A)
print(A[2])   #&#x663E;&#x793A;&#x7B2C;3&#x884C;
print(A[1][1])  #&#x663E;&#x793A;&#x7B2C;2&#x884C;&#x7B2C;2&#x5217;
print(A[1, 1])  #&#x663E;&#x793A;&#x7B2C;2&#x884C;&#x7B2C;2&#x5217;
print(A[1, :])  #&#x663E;&#x793A;&#x7B2C;2&#x884C;&#x6240;&#x6709;&#x6570;
print(A[1, 1:3])  #&#x663E;&#x793A;&#x7B2C;2&#x884C;&#x7B2C;2&#x5217;&#x5230;&#x7B2C;3&#x5217;&#x7684;&#x6570;

print(A.flat)   #A&#x77E9;&#x9635;&#x7684;&#x5411;
for item in A.flat:
    print(item)

6、矩阵的合并

np.vstack((A, B)) #将A和B合并为2维矩阵;
np.hstack((A, B)) #将A和B合并列矩阵

import numpy as np

A = np.array([1, 1, 1])
B = np.array([2, 2, 2])
C = np.vstack((A, B))   #&#x5C06;A&#x548C;B&#x5408;&#x5E76;&#x4E3A;2&#x7EF4;&#x77E9;&#x9635;
D = np.hstack((A, B))   #&#x5C06;A&#x548C;B&#x5408;&#x5E76;&#x5217;&#x77E9;&#x9635; [1 1 1 2 2 2]
print(C)
print(D)

print(A[:, np.newaxis])   #&#x5C06;&#x4E00;&#x7EF4;&#x5411;&#x91CF;&#x8F6C;&#x53D8;&#x4E3A;&#x7EB5;&#x5411;
A = A[:, np.newaxis]
B = B[:, np.newaxis]
C = np.vstack((A, B))   #&#x5C06;A&#x548C;B&#x5408;&#x5E76;&#x4E3A;6&#x884C;1&#x5217;&#x77E9;&#x9635;
D = np.hstack((A, B))   #&#x5C06;A&#x548C;B&#x5408;&#x5E76;&#x5217;&#x77E9;&#x9635; 3&#x884C;2&#x5217;&#x77E9;&#x9635;
print(C)
print(D)

C = np.concatenate((A,B,B,A), axis=0)  #&#x5C06;&#x8FD9;&#x51E0;&#x4E2A;&#x77E9;&#x9635;&#x5728;&#x5217;&#x5411;&#x91CF;&#x5408;&#x5E76;
print(C)

7、矩阵的分割

np.split(A, 2, axis=1) 将矩阵A分割为2个矩阵,按照列分割
np.array_split(A, 3, axis=1) 将3行4列矩阵A分割为3个矩阵,按照列分割,这样其中一个矩阵为3行2列

import numpy as np

A = np.arange(12).reshape((3, 4))
print(A)
print(np.split(A, 2, axis=1))   #&#x5C06;&#x77E9;&#x9635;A&#x5206;&#x5272;&#x4E3A;2&#x4E2A;&#x77E9;&#x9635;&#xFF0C;&#x6309;&#x7167;&#x5217;&#x5206;&#x5272;
print(np.split(A, 3, axis=0))   #&#x5C06;&#x77E9;&#x9635;A&#x5206;&#x5272;&#x4E3A;3&#x4E2A;&#x77E9;&#x9635;&#xFF0C;&#x6309;&#x7167;&#x884C;&#x5206;&#x5272;
print(np.array_split(A, 3, axis=1))   #&#x5C06;3&#x884C;4&#x5217;&#x77E9;&#x9635;A&#x5206;&#x5272;&#x4E3A;3&#x4E2A;&#x77E9;&#x9635;&#xFF0C;&#x6309;&#x7167;&#x5217;&#x5206;&#x5272;&#xFF0C;&#x8FD9;&#x6837;&#x5176;&#x4E2D;&#x4E00;&#x4E2A;&#x77E9;&#x9635;&#x4E3A;3&#x884C;2&#x5217;
print(np.vsplit(A,3))       #&#x5C06;&#x77E9;&#x9635;A&#x5206;&#x5272;&#x4E3A;3&#x4E2A;&#x77E9;&#x9635;&#xFF0C;&#x6309;&#x7167;&#x884C;&#x5206;&#x5272;
print(np.hsplit(A,2))       #&#x5C06;&#x77E9;&#x9635;A&#x5206;&#x5272;&#x4E3A;2&#x4E2A;&#x77E9;&#x9635;&#xFF0C;&#x6309;&#x7167;&#x5217;&#x5206;&#x5272;

8、矩阵赋值和关联的区别

e.copy() #只是赋值,而不是关联

import numpy as np
a = np.arange(4)
print(a)
b = a;
c = a;
d = b;
print(a,b,c,d)
a[0] = 11
print(a,b,c,d)  #&#x6539;&#x53D8;a&#x4E2D;&#x7684;&#x5143;&#x7D20;&#xFF0C;b,c,d&#x4E5F;&#x4F1A;&#x8DDF;&#x7740;&#x6539;&#x53D8;&#xFF0C;&#x8FD9;&#x548C;c&#x8BED;&#x8A00;&#x662F;&#x4E0D;&#x4E00;&#x6837;&#x7684;&#xFF1B;&#x540C;&#x6837;&#x7684;&#x6539;&#x53D8;b,c,d&#x4E2D;&#x4EFB;&#x610F;&#x4E00;&#x4E2A;&#x7684;&#x503C;&#xFF0C;a,b,c,d&#x90FD;&#x4F1A;&#x6539;&#x53D8;

#&#x8BA9;a,b,c,d&#x6539;&#x53D8;&#x4E0D;&#x4F1A;&#x5BF9;&#x5176;&#x4ED6;&#x5F71;&#x54CD;
e = np.arange(4)
f = e.copy()  #&#x53EA;&#x662F;&#x8D4B;&#x503C;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5173;&#x8054;
print(e,f)
e[0] = 22
print(e, f)

9、pandas系列

pd.date_range();
pd.Series();
pd.DataFrame();

import pandas as pd
import numpy as np

s = pd.Series([1, 3, 6, np.nan, 44, 1])  #np.nan&#x8868;&#x793A;&#x4E00;&#x4E2A;&#x7A7A;&#x503C;
print(s)

dates = pd.date_range('20220110',periods=6)
print(dates)

#&#x4E0B;&#x9762;&#x7684;6&#x884C;4&#x5217;&#x77E9;&#x9635;&#xFF0C;&#x884C;&#x7D22;&#x5F15;&#x4E3A;&#x65E5;&#x671F;&#xFF0C;&#x5217;&#x7D22;&#x5F15;&#x4E3A;&#x5B57;&#x7B26;a,b,c,d
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd'])
print(df)
print(df.index)  #&#x6253;&#x5370;&#x7D22;&#x5F15;
print(df.columns)   #&#x6253;&#x5370;&#x5217;&#x7D22;&#x5F15;
print(df.values)    #&#x6253;&#x5370;&#x6574;&#x4E2A;&#x77E9;&#x9635;&#xFF0C;&#x4E0D;&#x663E;&#x793A;&#x7D22;&#x5F15;
print(df.describe())  #&#x57FA;&#x672C;&#x7684;&#x503C;&#xFF0C;&#x5305;&#x542B;&#x4E2A;&#x6570;&#xFF0C;&#x5E73;&#x5747;&#x503C;&#xFF0C;&#x6700;&#x5C0F;&#x503C;&#xFF0C;&#x6700;&#x5927;&#x503C;
print(df.T)    #df&#x77E9;&#x9635;&#x8F6C;&#x7F6E;
print(df.sort_index(axis=1, ascending=False))   #&#x5C06;&#x5217;&#x5E8F;&#x5217;&#x9006;&#x6392;&#x5E8F;
print(df.sort_values(by='b'))  #&#x5C06;b&#x5217;&#x503C;&#x6392;&#x5217;

10、按照索引显示

df.loc[] ; 按照标签的形式显示
df.iloc[]; 按照位置的形式显示

import pandas as pd
import numpy as np

dates = pd.date_range('20220110', periods=6)
#&#x4E0B;&#x9762;&#x7684;6&#x884C;4&#x5217;&#x77E9;&#x9635;&#xFF0C;&#x884C;&#x7D22;&#x5F15;&#x4E3A;&#x65E5;&#x671F;&#xFF0C;&#x5217;&#x7D22;&#x5F15;&#x4E3A;&#x5B57;&#x7B26;a,b,c,d
df = pd.DataFrame(np.arange(24).reshape((6,4)), index=dates, columns=['a', 'b', 'c', 'd'])
print(df['a'], df.a)   #&#x4E24;&#x79CD;&#x6253;&#x5370;&#x65B9;&#x5F0F;&#x662F;&#x4E00;&#x81F4;&#x7684;
print(df[0:3])    #&#x663E;&#x793A;[0,2]&#x884C;&#x6570;&#x636E;

#&#x6309;&#x7167;&#x6807;&#x7B7E;&#x7684;&#x5F62;&#x5F0F;&#x663E;&#x793A;
print("&#x6309;&#x7167;&#x6807;&#x7B7E;&#x7684;&#x5F62;&#x5F0F;&#x663E;&#x793A;")
print(df.loc['20220111'])
print(df.loc[:, ['a', 'b']])  #&#x6253;&#x5370;&#x5217;&#x4E2D;a,b&#x4E24;&#x5217;
print(df.loc['20220111', ['a', 'b']])  #&#x6253;&#x5370;&#x5217;&#x4E2D;a,b&#x4E24;&#x5217;&#xFF0C;&#x53EA;&#x663E;&#x793A;20220111&#x8FD9;&#x4E00;&#x884C;

#&#x6309;&#x7167;&#x4F4D;&#x7F6E;&#x7684;&#x5F62;&#x5F0F;&#x663E;&#x793A;
print("&#x6309;&#x7167;&#x4F4D;&#x7F6E;&#x7684;&#x5F62;&#x5F0F;&#x663E;&#x793A;")
print(df.iloc[3, 1])     #&#x663E;&#x793A;&#x7B2C;&#x4E09;&#x884C;&#x7B2C;&#x4E00;&#x5217;&#x6570;&#x636E;
print(df.iloc[3:5, 1:3])     #&#x663E;&#x793A;&#x7B2C;&#x4E09;&#x884C;&#x5230;&#x7B2C;&#x4E94;&#x884C;&#xFF0C;&#x7B2C;&#x4E00;&#x5217;&#x5230;&#x7B2C;&#x4E09;&#x5217;&#x6570;&#x636E;
print(df.iloc[[1, 3, 5], 1:3])     #&#x663E;&#x793A;&#x7B2C;1&#x884C;,&#x7B2C;3&#x884C;,&#x7B2C;&#x4E94;&#x884C;&#xFF0C;&#x7B2C;&#x4E00;&#x5217;&#x5230;&#x7B2C;&#x4E09;&#x5217;&#x6570;&#x636E;

#&#x6309;&#x7167;&#x4F4D;&#x7F6E;&#x548C;&#x6807;&#x7B7E;&#x7684;&#x6DF7;&#x5408;&#x5F62;&#x5F0F;&#x663E;&#x793A;,python3&#x4E2D;&#x5DF2;&#x7ECF;&#x5F03;&#x7528;&#x4E86;ix&#x6807;&#x7B7E;
print("&#x6309;&#x7167;&#x4F4D;&#x7F6E;&#x548C;&#x6807;&#x7B7E;&#x7684;&#x6DF7;&#x5408;&#x5F62;&#x5F0F;&#x663E;&#x793A;")
print(df.ix[:3, ['a','c']])

print("&#x6253;&#x5370;&#x9700;&#x8981;&#x5224;&#x65AD;&#x7684;&#x503C;")
print(df)
print(df[df.a > 8])  #&#x6253;&#x5370;a&#x5217;&#x4E2D;&#x5927;&#x4E8E;8&#x7684;&#x503C;

11、对矩阵中具体坐标的数值改变

import pandas as pd
import numpy as np

dates = pd.date_range('20220110', periods=6)
#&#x4E0B;&#x9762;&#x7684;6&#x884C;4&#x5217;&#x77E9;&#x9635;&#xFF0C;&#x884C;&#x7D22;&#x5F15;&#x4E3A;&#x65E5;&#x671F;&#xFF0C;&#x5217;&#x7D22;&#x5F15;&#x4E3A;&#x5B57;&#x7B26;a,b,c,d
df = pd.DataFrame(np.arange(24).reshape((6,4)), index=dates, columns=['a', 'b', 'c', 'd'])

print("&#x79CD;&#x65B9;&#x5F0F;&#x6539;&#x53D8;&#x6570;&#x7EC4;&#x4E2D;&#x7684;&#x503C;")
print(df)
df.iloc[2, 2] = 1111
df.loc['20220111', 'b'] = 2222
print(df)
df.b[df.b > 0] = 0  #&#x5C06;b&#x5217;&#x5927;&#x4E8E;0&#x7684;&#x6570;&#x5168;&#x90E8;&#x6539;&#x4E3A;0
print(df)

12、对于矩阵中有空值的处理

df.dropna(); 对矩阵中有空值的进行丢弃
df.isnull(); 是否有数据为空值
df.fillna(); 填充空值处为具体数值

import pandas as pd
import numpy as np

dates = pd.date_range('20220110', periods=6)
#&#x4E0B;&#x9762;&#x7684;6&#x884C;4&#x5217;&#x77E9;&#x9635;&#xFF0C;&#x884C;&#x7D22;&#x5F15;&#x4E3A;&#x65E5;&#x671F;&#xFF0C;&#x5217;&#x7D22;&#x5F15;&#x4E3A;&#x5B57;&#x7B26;a,b,c,d
df = pd.DataFrame(np.arange(24).reshape((6,4)), index=dates, columns=['a', 'b', 'c', 'd'])
print("&#x5904;&#x7406;&#x4E22;&#x5931;&#x7684;&#x6570;&#x636E;")
df.iloc[0, 1] = np.nan
df.iloc[1, 2] = np.nan
print(df)

print("&#x628A;&#x6570;&#x636E;&#x6709;&#x4E22;&#x5931;&#x7684;&#xFF0C;&#x6309;&#x7167;&#x884C;&#x4E22;&#x5931;")
print(df.dropna(axis=0, how='any'))  #how={'any','all'} any&#x4EE3;&#x8868;&#x8FD9;&#x4E00;&#x884C;&#x53EA;&#x8981;&#x6709;&#x4E00;&#x4E2A;&#x6570;&#x636E;&#x4E3A;&#x7A7A;&#x503C;&#x5C31;&#x4E22;&#x5F03;&#xFF0C;
                                     # all&#x4EE3;&#x8868;&#x8FD9;&#x4E00;&#x884C;&#x6240;&#x6709;&#x503C;&#x90FD;&#x4E3A;&#x7A7A;&#x503C;&#x624D;&#x4F1A;&#x628A;&#x8FD9;&#x4E00;&#x884C;&#x4E22;&#x5F03;
print(df.isnull())  #&#x662F;&#x5426;&#x6709;&#x6570;&#x636E;&#x4E3A;&#x7A7A;&#x503C;&#xFF0C;&#x663E;&#x793A;&#x6574;&#x4E2A;&#x77E9;&#x9635;
print(np.any(df.isnull()) == True)  #&#x662F;&#x5426;&#x6709;&#x6570;&#x636E;&#x4E3A;&#x7A7A;&#x503C;&#xFF0C;&#x53EA;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x5224;&#x65AD;&#x503C;
print("&#x628A;&#x6570;&#x636E;&#x6709;&#x4E22;&#x5931;&#x7684;&#xFF0C;&#x628A;&#x4E22;&#x5931;&#x7684;&#x6570;&#x636E;&#x586B;&#x4E0A;&#x4E00;&#x4E2A;&#x503C;")
print(df.fillna(value=0))

13、对矩阵的不同方式合并

pd.concat();
df1.append();

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.ones((3, 4))*0, columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.ones((3, 4))*1, columns=['a', 'b', 'c', 'd'])
df3 = pd.DataFrame(np.ones((3, 4))*2, columns=['a', 'b', 'c', 'd'])
print(df1)
print(df2)
print(df3)
print("&#x628A;&#x4E09;&#x4E2A;&#x77E9;&#x9635;&#x8FDB;&#x884C;&#x5408;&#x5E76;")

res = pd.concat([df1, df2, df3], axis=0)  #&#x5217;&#x5408;&#x5E76;,&#x7D22;&#x5F15;&#xFF08;&#x5373;&#x5750;&#x6807;&#xFF09;&#x8FD8;&#x4E3A;&#x4EE5;&#x524D;&#x7684;&#x5750;&#x6807;
print(res)
res = pd.concat([df1, df2, df3], axis=0, ignore_index=True)  #&#x5217;&#x5408;&#x5E76;,&#x7D22;&#x5F15;&#xFF08;&#x5373;&#x5750;&#x6807;&#xFF09;&#x4E3A;&#x987A;&#x5E8F;&#x6392;&#x5217;&#x7684;
print(res)

#&#x7D22;&#x5F15;&#x4E3A;1&#xFF0C;2&#xFF0C;3
df4 = pd.DataFrame(np.ones((3, 4))*0, columns=['a', 'b', 'c', 'd'], index=[1, 2, 3])
#&#x7D22;&#x5F15;&#x4E3A;2&#xFF0C;3&#xFF0C;4
df5 = pd.DataFrame(np.ones((3, 4))*1, columns=['b', 'c', 'd', 'e'], index=[2, 3, 4])
print(df4)
print(df5)
res = pd.concat([df4, df5])   #&#x6CA1;&#x6709;&#x503C;&#x7684;&#x7D22;&#x5F15;&#x4E3A;&#x7A7A;&#x503C;
print(res)
res = pd.concat([df4, df5], join='inner')  #&#x4FDD;&#x7559;&#x4E24;&#x4E2A;&#x77E9;&#x9635;&#x4E2D;&#x6709;&#x5171;&#x540C;&#x7D22;&#x5F15;&#x7684;&#x503C;
print(res)

print("append&#x628A;&#x4E00;&#x4E2A;&#x77E9;&#x9635;&#x52A0;&#x5165;&#x5230;&#x53E6;&#x4E00;&#x4E2A;&#x77E9;&#x9635;&#x4E2D;")
res = df1.append(df2, ignore_index=True) #&#x52A0;&#x4E00;&#x4E2A;&#x77E9;&#x9635;
print(res)
res = df1.append([df2, df3], ignore_index=True) #&#x52A0;&#x591A;&#x4E2A;&#x77E9;&#x9635;
print(res)

print("&#x7ED9;&#x4E00;&#x4E2A;&#x77E9;&#x9635;&#x6DFB;&#x52A0;&#x4E00;&#x884C;")
s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
res = df1.append(s1, ignore_index=True)
print(res)

14、矩阵合并-2

pd.merge();

import pandas as pd

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                     'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                      'C': ['C0', 'C1', 'C2', 'C3'],
                      'D': ['D0', 'D1', 'D2', 'D3']})
print(left)
print(right)
res = pd.merge(left, right, on='key')  #&#x57FA;&#x4E8E;key&#x5217;&#x5408;&#x5E76;
print(res)

#&#x6709;&#x4E24;&#x4E2A;&#x5173;&#x952E;&#x5217;&#xFF0C;key1,key2
left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
                     'key2': ['K0', 'K1', 'K0', 'K1'],
                     'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
                      'key2': ['K0', 'K0', 'K0', 'K0'],
                      'C': ['C0', 'C1', 'C2', 'C3'],
                      'D': ['D0', 'D1', 'D2', 'D3']})
print(left)
print(right)
how = {'left', 'right', 'outer', 'inner'}
#outer&#x662F;&#x628A;&#x6240;&#x6709;&#x7684;&#x7D22;&#x5F15;&#x90FD;&#x6DFB;&#x52A0;&#x8FDB;&#x6765;&#xFF0C;&#x6CA1;&#x6709;&#x7684;&#x503C;&#x4E3A;&#x7A7A;&#x503C;&#xFF1B; inner&#x662F;&#x628A;&#x6709;&#x4EA4;&#x96C6;&#x7684;&#x7D22;&#x5F15;&#x96C6;&#x5408;&#x8D77;&#x6765;&#xFF0C;&#x6CA1;&#x6709;&#x7684;&#x4E22;&#x5F03;

res = pd.merge(left, right, on=['key1', 'key2'], how='inner')
print(res)

15、matplotlib画图

data.plot()
plt.show();
data.plot.scatter();
data.plot.scatter();

import pandas as pd
import numpy as np
import matplotlib .pyplot as plt

data = pd.Series(np.random.randn(1000), index=np.arange(1000))
data = data.cumsum()
data.plot()
plt.show()

data = pd.DataFrame(np.random.randn(1000, 4),
                    index = np.arange(1000),
                    columns=list("ABCD"))
data = data.cumsum()
data.plot()
plt.show()

#&#x6563;&#x70B9;&#x56FE;
ax = data.plot.scatter(x='A', y='B', color='DarkBlue', label='Class 1')
data.plot.scatter(x='A', y='C', color='DarkGreen', label='Class 2', ax=ax)
plt.show()

Original: https://blog.csdn.net/qq_42530422/article/details/122589004
Author: qq_42530422
Title: Numpy和Pandas的学习总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/760127/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球