Pandas快速入门1
软考
软考
📅 2025-09-18 17:54
🔄 2025-09-18 17:56
👤 admin
import pandas as pd
df=pd.read_excel('team.xlsx')
df
name | team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|---|
0 | Liver | E | 89 | 21 | 24 | 64 |
1 | Arry | C | 36 | 37 | 37 | 57 |
2 | Ack | A | 57 | 60 | 18 | 84 |
3 | Eorge | C | 93 | 96 | 71 | 78 |
4 | Oah | D | 65 | 49 | 61 | 86 |
... | ... | ... | ... | ... | ... | ... |
95 | Gabriel | C | 48 | 59 | 87 | 74 |
96 | Austin7 | C | 21 | 31 | 30 | 43 |
97 | Lincoln4 | C | 98 | 93 | 1 | 20 |
98 | Eli | E | 11 | 74 | 58 | 91 |
99 | Ben | E | 21 | 43 | 41 | 74 |
100 rows × 6 columns
df.head()
name | team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|---|
0 | Liver | E | 89 | 21 | 24 | 64 |
1 | Arry | C | 36 | 37 | 37 | 57 |
2 | Ack | A | 57 | 60 | 18 | 84 |
3 | Eorge | C | 93 | 96 | 71 | 78 |
4 | Oah | D | 65 | 49 | 61 | 86 |
df.tail()
name | team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|---|
95 | Gabriel | C | 48 | 59 | 87 | 74 |
96 | Austin7 | C | 21 | 31 | 30 | 43 |
97 | Lincoln4 | C | 98 | 93 | 1 | 20 |
98 | Eli | E | 11 | 74 | 58 | 91 |
99 | Ben | E | 21 | 43 | 41 | 74 |
df.sample(5)
name | team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|---|
27 | Finley | D | 62 | 73 | 84 | 68 |
0 | Liver | E | 89 | 21 | 24 | 64 |
32 | Alexander | C | 91 | 76 | 26 | 79 |
16 | Joshua | A | 63 | 4 | 80 | 30 |
73 | Elliot | C | 15 | 17 | 76 | 22 |
df.shape
(100, 6)
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 100 entries, 0 to 99 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 name 100 non-null object 1 team 100 non-null object 2 Q1 100 non-null int64 3 Q2 100 non-null int64 4 Q3 100 non-null int64 5 Q4 100 non-null int64 dtypes: int64(4), object(2) memory usage: 4.8+ KB
df.describe()
Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|
count | 100.000000 | 100.000000 | 100.000000 | 100.000000 |
mean | 49.200000 | 52.550000 | 52.670000 | 52.780000 |
std | 29.962603 | 29.845181 | 26.543677 | 27.818524 |
min | 1.000000 | 1.000000 | 1.000000 | 2.000000 |
25% | 19.500000 | 26.750000 | 29.500000 | 29.500000 |
50% | 51.500000 | 49.500000 | 55.000000 | 53.000000 |
75% | 74.250000 | 77.750000 | 76.250000 | 75.250000 |
max | 98.000000 | 99.000000 | 99.000000 | 99.000000 |
df.dtypes
name object team object Q1 int64 Q2 int64 Q3 int64 Q4 int64 dtype: object
df.axes
[RangeIndex(start=0, stop=100, step=1), Index(['name', 'team', 'Q1', 'Q2', 'Q3', 'Q4'], dtype='object')]
df.columns
Index(['name', 'team', 'Q1', 'Q2', 'Q3', 'Q4'], dtype='object')
df.set_index('name',inplace=True)
df.head()
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Liver | E | 89 | 21 | 24 | 64 |
Arry | C | 36 | 37 | 37 | 57 |
Ack | A | 57 | 60 | 18 | 84 |
Eorge | C | 93 | 96 | 71 | 78 |
Oah | D | 65 | 49 | 61 | 86 |
df['Q1']
df.Q1
name Liver 89 Arry 36 Ack 57 Eorge 93 Oah 65 .. Gabriel 48 Austin7 21 Lincoln4 98 Eli 11 Ben 21 Name: Q1, Length: 100, dtype: int64
df[['team','Q1']]
team | Q1 | |
---|---|---|
name | ||
Liver | E | 89 |
Arry | C | 36 |
Ack | A | 57 |
Eorge | C | 93 |
Oah | D | 65 |
... | ... | ... |
Gabriel | C | 48 |
Austin7 | C | 21 |
Lincoln4 | C | 98 |
Eli | E | 11 |
Ben | E | 21 |
100 rows × 2 columns
df.loc[:,['team','Q1']]
team | Q1 | |
---|---|---|
name | ||
Liver | E | 89 |
Arry | C | 36 |
Ack | A | 57 |
Eorge | C | 93 |
Oah | D | 65 |
... | ... | ... |
Gabriel | C | 48 |
Austin7 | C | 21 |
Lincoln4 | C | 98 |
Eli | E | 11 |
Ben | E | 21 |
100 rows × 2 columns
df[df.index=='Liver']
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Liver | E | 89 | 21 | 24 | 64 |
df[0:3]
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Liver | E | 89 | 21 | 24 | 64 |
Arry | C | 36 | 37 | 37 | 57 |
Ack | A | 57 | 60 | 18 | 84 |
df[0:10:2]
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Liver | E | 89 | 21 | 24 | 64 |
Ack | A | 57 | 60 | 18 | 84 |
Oah | D | 65 | 49 | 61 | 86 |
Acob | B | 61 | 95 | 94 | 8 |
Reddie | D | 64 | 93 | 57 | 72 |
df.iloc[:10,:]
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Liver | E | 89 | 21 | 24 | 64 |
Arry | C | 36 | 37 | 37 | 57 |
Ack | A | 57 | 60 | 18 | 84 |
Eorge | C | 93 | 96 | 71 | 78 |
Oah | D | 65 | 49 | 61 | 86 |
Harlie | C | 24 | 13 | 87 | 43 |
Acob | B | 61 | 95 | 94 | 8 |
Lfie | A | 9 | 10 | 99 | 37 |
Reddie | D | 64 | 93 | 57 | 72 |
Oscar | A | 77 | 9 | 26 | 67 |
df.loc['Ben','Q1':'Q4']
Q1 21 Q2 43 Q3 41 Q4 74 Name: Ben, dtype: object
df.loc['Eorge':'Alexander','team':'Q4']
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Eorge | C | 93 | 96 | 71 | 78 |
Oah | D | 65 | 49 | 61 | 86 |
Harlie | C | 24 | 13 | 87 | 43 |
Acob | B | 61 | 95 | 94 | 8 |
Lfie | A | 9 | 10 | 99 | 37 |
Reddie | D | 64 | 93 | 57 | 72 |
Oscar | A | 77 | 9 | 26 | 67 |
Leo | B | 17 | 4 | 33 | 79 |
Logan | B | 9 | 89 | 35 | 65 |
Archie | C | 83 | 89 | 59 | 68 |
Theo | C | 51 | 86 | 87 | 27 |
Thomas | B | 80 | 48 | 56 | 41 |
James | E | 48 | 77 | 52 | 11 |
Joshua | A | 63 | 4 | 80 | 30 |
Henry | A | 91 | 15 | 75 | 17 |
William | C | 80 | 68 | 3 | 26 |
Max | E | 97 | 75 | 41 | 3 |
Lucas | A | 60 | 41 | 77 | 62 |
Ethan | D | 79 | 45 | 89 | 88 |
Arthur | A | 44 | 53 | 42 | 40 |
Mason | D | 80 | 96 | 26 | 49 |
Isaac | E | 74 | 23 | 28 | 65 |
Harrison | B | 89 | 13 | 18 | 75 |
Teddy | E | 71 | 91 | 21 | 48 |
Finley | D | 62 | 73 | 84 | 68 |
Daniel | C | 50 | 50 | 72 | 61 |
Riley | E | 35 | 26 | 59 | 83 |
Edward | B | 57 | 38 | 86 | 87 |
Joseph | E | 67 | 87 | 87 | 93 |
Alexander | C | 91 | 76 | 26 | 79 |
df[df.Q1>90]
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Eorge | C | 93 | 96 | 71 | 78 |
Henry | A | 91 | 15 | 75 | 17 |
Max | E | 97 | 75 | 41 | 3 |
Alexander | C | 91 | 76 | 26 | 79 |
Elijah | B | 97 | 89 | 15 | 46 |
Ryan | E | 92 | 70 | 64 | 31 |
Aaron | A | 96 | 75 | 55 | 8 |
Lincoln4 | C | 98 | 93 | 1 | 20 |
df[df.team=='C']
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Arry | C | 36 | 37 | 37 | 57 |
Eorge | C | 93 | 96 | 71 | 78 |
Harlie | C | 24 | 13 | 87 | 43 |
Archie | C | 83 | 89 | 59 | 68 |
Theo | C | 51 | 86 | 87 | 27 |
William | C | 80 | 68 | 3 | 26 |
Daniel | C | 50 | 50 | 72 | 61 |
Alexander | C | 91 | 76 | 26 | 79 |
Adam | C | 90 | 32 | 47 | 39 |
Sebastian | C | 1 | 14 | 68 | 48 |
Tommy | C | 29 | 44 | 28 | 76 |
Jake3 | C | 69 | 23 | 11 | 40 |
Ollie3 | C | 10 | 76 | 30 | 36 |
Matthew | C | 44 | 33 | 41 | 98 |
Elliot | C | 15 | 17 | 76 | 22 |
Ellis | C | 34 | 34 | 77 | 42 |
Calum | C | 14 | 91 | 16 | 82 |
Louis2 | C | 13 | 94 | 51 | 22 |
Connor | C | 62 | 38 | 63 | 46 |
Gabriel | C | 48 | 59 | 87 | 74 |
Austin7 | C | 21 | 31 | 30 | 43 |
Lincoln4 | C | 98 | 93 | 1 | 20 |
df[df.index=='Oscar']
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Oscar | A | 77 | 9 | 26 | 67 |
df[(df['Q1']>90)&(df['team']=='C')]
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Eorge | C | 93 | 96 | 71 | 78 |
Alexander | C | 91 | 76 | 26 | 79 |
Lincoln4 | C | 98 | 93 | 1 | 20 |
df[df['team']=='C'].loc[df.Q1>90]
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Eorge | C | 93 | 96 | 71 | 78 |
Alexander | C | 91 | 76 | 26 | 79 |
Lincoln4 | C | 98 | 93 | 1 | 20 |
df.sort_values(by='Q1')
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Sebastian | C | 1 | 14 | 68 | 48 |
Harley | B | 2 | 99 | 12 | 13 |
Liam | B | 2 | 80 | 24 | 25 |
Lewis | B | 4 | 34 | 77 | 28 |
Finn | E | 4 | 1 | 55 | 32 |
... | ... | ... | ... | ... | ... |
Eorge | C | 93 | 96 | 71 | 78 |
Aaron | A | 96 | 75 | 55 | 8 |
Max | E | 97 | 75 | 41 | 3 |
Elijah | B | 97 | 89 | 15 | 46 |
Lincoln4 | C | 98 | 93 | 1 | 20 |
100 rows × 5 columns
df.sort_values(by='Q1', ascending=False)
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Lincoln4 | C | 98 | 93 | 1 | 20 |
Max | E | 97 | 75 | 41 | 3 |
Elijah | B | 97 | 89 | 15 | 46 |
Aaron | A | 96 | 75 | 55 | 8 |
Eorge | C | 93 | 96 | 71 | 78 |
... | ... | ... | ... | ... | ... |
Lewis | B | 4 | 34 | 77 | 28 |
Finn | E | 4 | 1 | 55 | 32 |
Harley | B | 2 | 99 | 12 | 13 |
Liam | B | 2 | 80 | 24 | 25 |
Sebastian | C | 1 | 14 | 68 | 48 |
100 rows × 5 columns
df.sort_values(['team','Q1'],ascending=[True,False])
team | Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|---|
name | |||||
Aaron | A | 96 | 75 | 55 | 8 |
Henry | A | 91 | 15 | 75 | 17 |
Nathan | A | 87 | 77 | 62 | 13 |
Dylan | A | 86 | 87 | 65 | 20 |
Blake | A | 78 | 23 | 93 | 9 |
... | ... | ... | ... | ... | ... |
Eli | E | 11 | 74 | 58 | 91 |
Jude | E | 8 | 45 | 13 | 65 |
Rory9 | E | 8 | 12 | 58 | 27 |
Jackson5 | E | 6 | 10 | 15 | 33 |
Finn | E | 4 | 1 | 55 | 32 |
100 rows × 5 columns
df.groupby('team').sum()
Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|
team | ||||
A | 1066 | 639 | 875 | 783 |
B | 975 | 1218 | 1202 | 1136 |
C | 1056 | 1194 | 1068 | 1127 |
D | 860 | 1191 | 1241 | 1199 |
E | 963 | 1013 | 881 | 1033 |
df.groupby('team').mean()
Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|
team | ||||
A | 62.705882 | 37.588235 | 51.470588 | 46.058824 |
B | 44.318182 | 55.363636 | 54.636364 | 51.636364 |
C | 48.000000 | 54.272727 | 48.545455 | 51.227273 |
D | 45.263158 | 62.684211 | 65.315789 | 63.105263 |
E | 48.150000 | 50.650000 | 44.050000 | 51.650000 |
df.groupby('team').agg({'Q1':'sum','Q2':'count','Q3':'mean','Q4':'max'})
Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|
team | ||||
A | 1066 | 17 | 51.470588 | 97 |
B | 975 | 22 | 54.636364 | 99 |
C | 1056 | 22 | 48.545455 | 98 |
D | 860 | 19 | 65.315789 | 99 |
E | 963 | 20 | 44.050000 | 98 |
df.groupby('team').sum().T
team | A | B | C | D | E |
---|---|---|---|---|---|
Q1 | 1066 | 975 | 1056 | 860 | 963 |
Q2 | 639 | 1218 | 1194 | 1191 | 1013 |
Q3 | 875 | 1202 | 1068 | 1241 | 881 |
Q4 | 783 | 1136 | 1127 | 1199 | 1033 |
相关笔记