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 |
相关笔记