我的pandas
1.创建series
2.创建dataframe
import numpy as np
import pandas as pd
a=np.random.randint(0,10,size=(5,4))
b=pd.DataFrame(a,columns=['a','b','c','d'],index=[1,2,3,4,5])
print(b['a']) #指定列
print(b.loc[[1,3]]) #指定行
import numpy as np
import pandas as pd
s1=pd.Series(range(10),index=range(10))
s2=pd.Series(range(12),index=range(12))
print(s1.add(s2,fill_value=-1)) # s1+s2 (对于s1来说,没有的值填充为-1,即-1+s2)
print(s1.sub(s2,fill_value=-1)) # s1-s2 (对于s1来说,没有的之填充为-1,即-1-s2)
import numpy as np
import pandas as pd
a=pd.DataFrame(np.random.randn(3,4))
print(a)
print(a.apply(lambda x:x.max(),axis=1)) #按行取最大值
print(a.apply(lambda x:x.max(),axis=0)) #按列取最大值
c=a.applymap(lambda x:'%.2f'%x) #每一个值都应用
import numpy as np
import pandas as pd
s1=pd.Series(np.random.randint(0,10,size=10),index=np.random.randint(0,10,size=10))
print(s1)
"""
5 0
8 2
8 6
8 4
6 8
0 0
3 2
9 5
8 2
1 3
"""
print(s1.sort_index()) #按数组的下标排序
"""
0 0
1 3
3 2
5 0
6 8
8 2
8 6
8 4
8 2
9 5
"""
print(s1.sort_values()) # 按数组的值排序
"""
5 0
0 0
8 2
3 2
8 2
1 3
8 4
9 5
8 6
6 8
"""
import numpy as np
import pandas as pd
s1=pd.DataFrame([[1.,2.,3.],[2.,np.nan,3.],[-1.,np.nan,0.]])
print(s1.isnull()) #是否为nan
"""0 1 2
0 False False False
1 False True False
2 False True False"""
print(s1.dropna(axis=0)) #把nan所在的行删去 删去列为axis=1
"""0 1 2
0 1.0 2.0 3.0
"""
print(s1.fillna(0)) #把nan填充为0
"""0 1 2
0 1.0 2.0 3.0
1 2.0 0.0 3.0
2 -1.0 0.0 0.0
"""
import numpy as np
import pandas as pd
s1=pd.DataFrame(np.random.randint(0,12,size=12),index=[['a','a','a','b','b','b','c','c','c','d','d','d'],[0,1,2,0,1,2,0,1,2,0,1,2]])
print(s1)
"""0
a 0 51 22 2
b 0 61 72 6
c 0 61 62 4
d 0 91 32 10
"""
3.删除行或列
import pandas as pd
data=pd.read_excel('C:/Users/windows11/OneDrive/桌面/新建 Microsoft Excel 工作表.xlsx',sheet_name='Sheet1')
print(data)
"""月份 语文 数学 英语
0 1 60 16 55
1 2 70 99 13
2 3 90 74 47
3 4 10 68 76
4 5 15 54 58
5 6 30 52 90
"""
data1=data.drop(0) #默认删除行
print(data1)
"""月份 语文 数学 英语
1 2 70 99 13
2 3 90 74 47
3 4 10 68 76
4 5 15 54 58
5 6 30 52 90
"""
data2=data.drop('语文',axis=1) #删除列
print(data2)
"""月份 数学 英语
0 1 16 55
1 2 99 13
2 3 74 47
3 4 68 76
4 5 54 58
5 6 52 90
"""
data3=data.drop(data[(data['数学']<=60)].index) #删除数学成绩小于等于60的行
print(data3)
"""月份 语文 数学 英语
1 2 70 99 13
2 3 90 74 47
3 4 10 68 76
"""
4.查询信息
import pandas as pd
data=pd.read_excel('C:/Users/windows11/OneDrive/桌面/新建 Microsoft Excel 工作表.xlsx',sheet_name='Sheet1')
print(data)
"""月份 语文 数学 英语
0 1 60 16 55
1 2 70 99 13
2 3 90 74 47
3 4 10 68 76
4 5 15 54 58
5 6 30 52 90
"""
data1=data['语文'].unique() #查看语文这一列有那些数据
print(data1)
"""
[60 70 90 10 15 30]
"""
data2=data['数学'].value_counts() #统计数学成绩每一个数据的个数
print(data2)
"""
54 1
68 1
99 1
74 1
52 1
16 1
"""
data3=data.query('英语>=60') #查询英语成绩大于等于60的行 query里面是一个字符串
print(data3)
"""月份 语文 数学 英语
3 4 10 68 76
5 6 30 52 90
"""
5.排序
import pandas as pd
data=pd.read_excel('C:/Users/windows11/OneDrive/桌面/新建 Microsoft Excel 工作表.xlsx',sheet_name='Sheet1')
print(data)
"""月份 语文 数学 英语
0 1 60 16 55
1 2 70 99 13
2 3 90 74 47
3 4 10 68 76
4 5 15 54 58
5 6 30 52 90
"""
data1=data.sort_values('语文') #根据语文成绩升序
print(data1)
"""月份 语文 数学 英语
3 4 10 68 76
4 5 15 54 58
5 6 30 52 90
0 1 60 16 55
1 2 70 99 13
2 3 90 74 47
"""
data2=data.sort_values('语文',ascending=False) #根据语文成绩降序
print(data2)
"""月份 语文 数学 英语
2 3 90 74 47
1 2 70 99 13
0 1 60 16 55
5 6 30 52 90
4 5 15 54 58
3 4 10 68 76
"""
6.关于时间的
7.随机取出矩阵中列
import numpy as np
import pandas as pd
a=np.random.randint(0,100,size=(10,10))
a=pd.DataFrame(a)
print(a)
"""0 1 2 3 4 5 6 7 8 9
0 61 19 22 63 26 58 52 34 80 14
1 60 92 13 84 41 61 30 69 8 97
2 50 82 16 37 84 17 13 73 92 55
3 44 67 6 57 40 52 13 25 33 8
4 38 86 93 95 82 23 81 39 42 99
5 49 21 78 78 72 69 74 13 39 27
6 69 4 16 93 9 73 2 60 41 31
7 48 78 76 28 23 89 81 68 64 15
8 20 35 47 73 33 49 82 97 13 16
9 24 93 6 74 43 38 78 44 82 44
"""
train_data=a.sample(frac=0.8)
print(train_data)
"""0 1 2 3 4 5 6 7 8 9
8 20 35 47 73 33 49 82 97 13 16
4 38 86 93 95 82 23 81 39 42 99
3 44 67 6 57 40 52 13 25 33 8
2 50 82 16 37 84 17 13 73 92 55
6 69 4 16 93 9 73 2 60 41 31
9 24 93 6 74 43 38 78 44 82 44
5 49 21 78 78 72 69 74 13 39 27
0 61 19 22 63 26 58 52 34 80 14
"""
test_data=a.drop(train_data.index,axis=0)
print(test_data)
"""0 1 2 3 4 5 6 7 8 9
1 60 92 13 84 41 61 30 69 8 97
7 48 78 76 28 23 89 81 68 64 15
"""
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
