中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Pandas進(jìn)階修煉120題
作者:劉早起
來源:早起python,禁止二次轉(zhuǎn)載

這篇文章是『Pandas進(jìn)階修煉120題』的匯總,我們對(duì)Pandas中常用的操作以習(xí)題的形式發(fā)布。從讀取數(shù)據(jù)到高級(jí)操作全部包含,希望可以通過刷題的方式來完整學(xué)習(xí)pandas中數(shù)據(jù)處理的各種方法,當(dāng)然如果你是高手,也歡迎嘗試給出與答案不同的解法。

1
創(chuàng)建DataFrame
題目:將下面的字典創(chuàng)建為DataFrame
data = {'grammer':['Python','C','Java','GO','R','SQL','PHP','Python'],
       'score':[1,2,np.nan,4,5,6,7,10]}
難度:?
期望結(jié)果

答案
df = pd.DataFrame(data)
本期所有題目均基于該數(shù)據(jù)框給出
 2
數(shù)據(jù)提取

題目:提取含有字符串'Python'的行
難度:??
期望結(jié)果
grammer  score
Python    1.0
Python   10.0
答案
result=df[df['grammer'].str.contains('Python')]

 3
提取列名
題目:輸出df的所有列名
難度?
期望結(jié)果
Index(['grammer''score'], dtype='object')
答案
df.columns

 4
修改列名

題目:修改第二列列名為'popularity'
難度:??
答案
df.rename(columns={'score':'popularity'}, inplace = True)

 5
字符統(tǒng)計(jì)
題目:統(tǒng)計(jì)grammer列中每種編程語(yǔ)言出現(xiàn)的次數(shù)
難度:??
答案
df['grammer'].value_counts()

 6
缺失值處理
題目:將空值用上下值的平均值填充
難度???
答案
df['popularity'] = df['popularity'].fillna(df['popularity'].interpolate())

7
數(shù)據(jù)提取

題目:提取popularity列中值大于3的行
難度:??
答案
df[df['popularity'] > 3]

 8
數(shù)據(jù)去重
題目:按照grammer進(jìn)行去重
難度??
答案
df.drop_duplicates(['grammer'])

 9
數(shù)據(jù)計(jì)算
題目:計(jì)算popularity平均值
難度??
答案
df['popularity'].mean()

10
格式轉(zhuǎn)換
題目:將grammer轉(zhuǎn)換為list
難度??
答案
df['grammer'].to_list()

11
數(shù)據(jù)保存
題目:將DataFrame保存為EXCEL
難度??
答案
df.to_excel('filename.xlsx')

12
數(shù)據(jù)查看
題目:查看數(shù)據(jù)行列數(shù)
難度?
答案
df.shape

13
數(shù)據(jù)提取
題目:提取popularity值大于3小于7的行
難度??
答案
df[(df['popularity'] > 3& (df['popularity'] < 7)]
14
位置處理
題目:交換兩列位置
難度???
答案
'''
方法1
'''

temp = df['popularity']
df.drop(labels=['popularity'], axis=1,inplace = True)
df.insert(0'popularity', temp)
df
'''
方法2
cols = df.columns[[1,0]]
df = df[cols]
df
'''

15
數(shù)據(jù)提取
題目:提取popularity列最大值所在行
難度??
答案
df[df['popularity'] == df['popularity'].max()]
16
數(shù)據(jù)查看
題目:查看最后5行數(shù)據(jù)
難度?
答案
df.tail()
17
數(shù)據(jù)修改
題目:刪除最后一行數(shù)據(jù)
難度?
答案
df.drop([len(df)-1],inplace=True)

18
數(shù)據(jù)修改
題目:添加一行數(shù)據(jù)['Perl',6.6]
難度??
答案
row={'grammer':'Perl','popularity':6.6}
df = df.append(row,ignore_index=True)
19
數(shù)據(jù)整理
題目:對(duì)數(shù)據(jù)按照'popularity'列值的大小進(jìn)行排序
難度??
答案
df.sort_values('popularity',inplace=True)
20
字符統(tǒng)計(jì)
題目:統(tǒng)計(jì)grammer列每個(gè)字符串的長(zhǎng)度
難度???
答案
df['grammer'].map(lambda xlen(x))

第二期:數(shù)據(jù)處理基礎(chǔ)

21
數(shù)據(jù)讀取
題目:讀取本地EXCEL數(shù)據(jù)
難度?
答案
df = pd.read_excel('pandas120.xlsx')

本期部分習(xí)題與該數(shù)據(jù)相關(guān)

22
數(shù)據(jù)查看
題目:查看df數(shù)據(jù)前5行
難度?
期望輸出

答案
df.head()
23
數(shù)據(jù)計(jì)算
題目:將salary列數(shù)據(jù)轉(zhuǎn)換為最大值與最小值的平均值
難度????
期望輸出

答案
#備注,在某些版本pandas中.ix方法可能失效,可使用.iloc,參考https://mp.weixin.qq.com/s/5xJ-VLaHCV9qX2AMNOLRtw
#為什么不能直接使用max,min函數(shù),因?yàn)槲覀兊臄?shù)據(jù)中是20k-35k這種字符串,所以需要先用正則表達(dá)式提取數(shù)字
import re
for i in range(len(df)):
    str1 = df.ix[i,2]
    k = re.findall(r'\d+\.?\d*',str1)
    salary = ((int(k[0]) + int(k[1]))/2)*1000
    df.ix[i,2] = salary
df

24
數(shù)據(jù)分組
題目:將數(shù)據(jù)根據(jù)學(xué)歷進(jìn)行分組并計(jì)算平均薪資
難度???
期望輸出
education salary            
不限 19600.000000
大專 10000.000000
本科 19361.344538
碩士 20642.857143
答案
df.groupby('education').mean()

25
時(shí)間轉(zhuǎn)換
題目:將createTime列時(shí)間轉(zhuǎn)換為月-日
難度???
期望輸出

答案
#備注,在某些版本pandas中.ix方法可能失效,可使用.iloc,參考https://mp.weixin.qq.com/s/5xJ-VLaHCV9qX2AMNOLRtw
for i in range(len(df)):
    df.ix[i,0] = df.ix[i,0].to_pydatetime().strftime('%m-%d')
df.head()
26
數(shù)據(jù)查看
題目:查看索引、數(shù)據(jù)類型和內(nèi)存信息
難度?
期望輸出
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 135 entries, 0 to 134
Data columns (total 4 columns):
createTime 135 non-null object
education 135 non-null object
salary 135 non-null int64
categories 135 non-null category
dtypes: category(1), int64(1), object(2)
memory usage: 3.5+ KB
答案
df.info()
27
數(shù)據(jù)查看
題目:查看數(shù)值型列的匯總統(tǒng)計(jì)
難度?
答案
df.describe()
28
數(shù)據(jù)整理
題目新增一列根據(jù)salary將數(shù)據(jù)分為三組
難度????
輸入
期望輸出

答案
bins = [0,50002000050000]
group_names = ['低''中''高']
df['categories'] = pd.cut(df['salary'], bins, labels=group_names)

29
數(shù)據(jù)整理
題目:按照salary列對(duì)數(shù)據(jù)降序排列
難度??
答案
df.sort_values('salary', ascending=False)
30
數(shù)據(jù)提取
題目:取出第33行數(shù)據(jù)
難度??
答案
df.loc[32]
31
數(shù)據(jù)計(jì)算
題目:計(jì)算salary列的中位數(shù)
難度??
答案
np.median(df['salary'])

32
數(shù)據(jù)可視化
題目:繪制薪資水平頻率分布直方圖
難度???
期望輸出

答案
df.salary.plot(kind='hist')

33
數(shù)據(jù)可視化
題目繪制薪資水平密度曲線
難度???
期望輸出

答案
df.salary.plot(kind='kde',xlim=(0,80000))

34
數(shù)據(jù)刪除
題目刪除最后一列categories
難度?
答案
del df['categories']

35
數(shù)據(jù)處理
題目:將df的第一列與第二列合并為新的一列
難度??
答案
df['test'] = df['education']+df['createTime']

36
數(shù)據(jù)處理
題目將education列與salary列合并為新的一列
難度???
備注:salary為int類型,操作與35題有所不同
答案
df['test1'] = df['salary'].map(str) + df['education']

37
數(shù)據(jù)計(jì)算
題目:計(jì)算salary最大值與最小值之差
難度???
答案
df[['salary']].apply(lambda xx.max() - x.min())

38
數(shù)據(jù)處理
題目:將第一行與最后一行拼接
難度??
答案
pd.concat([df[:1]df[-2:-1]])

39
數(shù)據(jù)處理
題目:將第8行數(shù)據(jù)添加至末尾
難度??
答案
df.append(df.iloc[7])

40
數(shù)據(jù)查看
題目:查看每列的數(shù)據(jù)類型
難度?
期望結(jié)果
createTime object
education object
salary int64
test object
test1 object
dtype: object
答案
df.dtypes

41
數(shù)據(jù)處理
題目:將createTime列設(shè)置為索引
難度??
答案
df.set_index('createTime')

42
數(shù)據(jù)創(chuàng)建
題目:生成一個(gè)和df長(zhǎng)度相同的隨機(jī)數(shù)dataframe
難度??
答案
df1 = pd.DataFrame(pd.Series(np.random.randint(1, 10, 135)))

43
數(shù)據(jù)處理
題目:將上一題生成的dataframe與df合并
難度??
答案
df= pd.concat([df,df1],axis=1)

44
數(shù)據(jù)計(jì)算
題目:生成新的一列newsalary列減去之前生成隨機(jī)數(shù)列
難度??
答案
df['new'] = df['salary'] - df[0]

45
缺失值處理
題目:檢查數(shù)據(jù)中是否含有任何缺失值
難度???
答案
df.isnull().values.any()

46
數(shù)據(jù)轉(zhuǎn)換
題目:將salary列類型轉(zhuǎn)換為浮點(diǎn)數(shù)
難度???
答案
df['salary'].astype(np.float64)

47
數(shù)據(jù)計(jì)算
題目:計(jì)算salary大于10000的次數(shù)
難度??
答案
len(df[df['salary']>10000])

48
數(shù)據(jù)統(tǒng)計(jì)
題目:查看每種學(xué)歷出現(xiàn)的次數(shù)
難度???
期望輸出
本科 119
碩士 7
不限 5
大專 4
Name: education, dtype: int64
答案
df.education.value_counts()

49
數(shù)據(jù)查看
題目:查看education列共有幾種學(xué)歷
難度??
答案
df['education'].nunique()

50
數(shù)據(jù)提取
題目:提取salarynew列的和大于60000的最后3行
難度????
期望輸出

答案
df1 = df[['salary','new']]
rowsums = df1.apply(np.sum, axis=1)
res = df.iloc[np.where(rowsums > 60000)[0][-3:], :]

第三期:金融數(shù)據(jù)處理

51
數(shù)據(jù)讀取

題目:使用絕對(duì)路徑讀取本地Excel數(shù)據(jù)
難度?
答案
data = pd.read_excel('/Users/Desktop/600000.SH.xls')

備注

請(qǐng)將答案中路徑替換為自己機(jī)器存儲(chǔ)數(shù)據(jù)的絕對(duì)路徑,本期相關(guān)習(xí)題與該數(shù)據(jù)有關(guān)

52
數(shù)據(jù)查看
題目:查看數(shù)據(jù)前三行
難度?
期望結(jié)果

答案
data.head(3)

53
缺失值處理

題目:查看每列數(shù)據(jù)缺失值情況
難度??
期望結(jié)果
代碼 1
簡(jiǎn)稱 2
日期 2
前收盤價(jià)(元) 2
開盤價(jià)(元) 2
最高價(jià)(元) 2
最低價(jià)(元) 2
收盤價(jià)(元) 2
成交量(股) 2
成交金額(元) 2
.................

答案

data.isnull().sum()
54
缺失值處理
題目:提取日期列含有空值的行
難度??
期望結(jié)果

答案
data[data['日期'].isnull()]
55
缺失值處理
題目:輸出每列缺失值具體行數(shù)
難度???
期望結(jié)果
列名:'代碼', 第[327]行位置有缺失值
列名:'簡(jiǎn)稱', 第[327, 328]行位置有缺失值
列名:'日期', 第[327, 328]行位置有缺失值
列名:'前收盤價(jià)(元)', 第[327, 328]行位置有缺失值
列名:'開盤價(jià)(元)', 第[327, 328]行位置有缺失值
列名:'最高價(jià)(元)', 第[327, 328]行位置有缺失值
列名:'最低價(jià)(元)', 第[327, 328]行位置有缺失值
列名:'收盤價(jià)(元)', 第[327, 328]行位置有缺失值
................

答案

for columname in data.columns:
    if data[columname].count() != len(data):
        loc = data[columname][data[columname].isnull().values==True].index.tolist()
        print('列名:'{}', 第{}行位置有缺失值'.format(columname,loc))
56
缺失值處理
題目:刪除所有存在缺失值的行
難度??
答案
data.dropna(axis=0, how='any', inplace=True)

備注

axis:0-行操作(默認(rèn)),1-列操作
how:any-只要有空值就刪除(默認(rèn)),all-全部為空值才刪除
inplace:False-返回新的數(shù)據(jù)集(默認(rèn)),True-在原數(shù)據(jù)集上操作

57
數(shù)據(jù)可視化
題目:繪制收盤價(jià)的折線圖
難度??
期望結(jié)果

答案

data['收盤價(jià)(元)'].plot()

58
數(shù)據(jù)可視化
題目:同時(shí)繪制開盤價(jià)與收盤價(jià)
難度???
期望結(jié)果

答案

data[['收盤價(jià)(元)','開盤價(jià)(元)']].plot()

備注

中文顯示請(qǐng)自己設(shè)置,我的字體亂了

59
數(shù)據(jù)可視化
題目:繪制漲跌幅的直方圖
難度??
期望結(jié)果

答案

data['漲跌幅(%)'].hist()
60
數(shù)據(jù)可視化
題目:讓直方圖更細(xì)致
難度??
期望結(jié)果

答案
data['漲跌幅(%)'].hist(bins = 30)
61
數(shù)據(jù)創(chuàng)建

題目以data的列名創(chuàng)建一個(gè)dataframe
難度??
答案
temp = pd.DataFrame(columns = data.columns.to_list())
62
異常值處理
題目打印所有換手率不是數(shù)字的行
難度???
期望結(jié)果

答案
for i in range(len(data)):
    if type(data.iloc[i,13]) != float:
        temp = temp.append(data.loc[i])

temp
63
異常值處理

題目打印所有換手率為--的行
難度???
答案
data[data['換手率(%)'].isin(['--'])]

備注

通過上一題我們發(fā)現(xiàn)換手率的異常值只有--


64
數(shù)據(jù)處理

題目重置data的行號(hào)
難度?
答案
data = data.reset_index()

備注

有時(shí)我們修改數(shù)據(jù)會(huì)導(dǎo)致索引混亂

65
異常值處理
題目刪除所有換手率為非數(shù)字的行
難度???
答案
k =[]
for i in range(len(data)):
    if type(data.iloc[i,13]) != float:
        k.append(i)
data.drop(labels=k,inplace=True)
66
數(shù)據(jù)可視化
題目繪制換手率的密度曲線
難度???
期望結(jié)果

答案
data['換手率(%)'].plot(kind='kde')
67
數(shù)據(jù)計(jì)算

題目計(jì)算前一天與后一天收盤價(jià)的差值
難度??
答案
data['收盤價(jià)(元)'].diff()
68
數(shù)據(jù)計(jì)算
題目計(jì)算前一天與后一天收盤價(jià)變化率
難度??
答案
data['收盤價(jià)(元)'].pct_change()
69
數(shù)據(jù)處理
題目設(shè)置日期為索引
難度?
答案
data.set_index('日期')
70
指標(biāo)計(jì)算

題目以5個(gè)數(shù)據(jù)作為一個(gè)數(shù)據(jù)滑動(dòng)窗口,在這個(gè)5個(gè)數(shù)據(jù)上取均值(收盤價(jià))

難度???
答案
data['收盤價(jià)(元)'].rolling(5).mean()
71
指標(biāo)計(jì)算

題目:以5個(gè)數(shù)據(jù)作為一個(gè)數(shù)據(jù)滑動(dòng)窗口,計(jì)算這五個(gè)數(shù)據(jù)總和(收盤價(jià))

難度???
答案
data['收盤價(jià)(元)'].rolling(5).sum()
72
數(shù)據(jù)可視化

題目:將收盤價(jià)5日均線、20日均線與原始數(shù)據(jù)繪制在同一個(gè)圖上

難度???
期望結(jié)果

答案
data['收盤價(jià)(元)'].plot()
data['收盤價(jià)(元)'].rolling(5).mean().plot()
data['收盤價(jià)(元)'].rolling(20).mean().plot()

73
數(shù)據(jù)重采樣

題目:按周為采樣規(guī)則,取一周收盤價(jià)最大值

  難度???
  答案
data['收盤價(jià)(元)'].resample('W').max()
74
Spyder——Python編程的“熱帶雨林”

題目:繪制重采樣數(shù)據(jù)與原始數(shù)據(jù)

  難度???
  期望結(jié)果

  答案
data['收盤價(jià)(元)'].plot()
data['收盤價(jià)(元)'].resample('7D').max().plot()
75
數(shù)據(jù)處理
題目:將數(shù)據(jù)往后移動(dòng)5天
難度??
答案
data.shift(5)

76
數(shù)據(jù)處理
題目:將數(shù)據(jù)向前移動(dòng)5天
難度??
答案
data.shift(-5)

77
數(shù)據(jù)計(jì)算
題目:使用expending函數(shù)計(jì)算開盤價(jià)的移動(dòng)窗口均值
難度??
答案
data['開盤價(jià)(元)'].expanding(min_periods=1).mean()
78
數(shù)據(jù)可視化
題目:繪制上一題的移動(dòng)均值與原始數(shù)據(jù)折線圖
難度???
期望結(jié)果

答案

data[' expanding Open mean']=data['開盤價(jià)(元)'].expanding(min_periods=1).mean()
data[['開盤價(jià)(元)''expanding Open mean']].plot(figsize=(166))
79
數(shù)據(jù)計(jì)算
題目:計(jì)算布林指標(biāo)
難度????
答案
data['former 30 days rolling Close mean']=data['收盤價(jià)(元)'].rolling(20).mean()
data['upper bound']=data['former 30 days rolling Close mean']+2*data['收盤價(jià)(元)'].rolling(20).std()#在這里我們?nèi)?0天內(nèi)的標(biāo)準(zhǔn)差
data['lower bound']=data['former 30 days rolling Close mean']-2*data['收盤價(jià)(元)'].rolling(20).std()
80
數(shù)據(jù)可視化
題目:計(jì)算布林線并繪制
難度???
期望結(jié)果

答案
data[['收盤價(jià)(元)''former 30 days rolling Close mean','upper bound','lower bound' ]].plot(figsize=(16, 6))

第四期:當(dāng)Pandas遇上NumPy

81
數(shù)據(jù)查看
題目:導(dǎo)入并查看pandas與numpy版本
難度?
答案
import pandas as pd
import numpy as np
print(np.__version__)
print(pd.__version__)
82
數(shù)據(jù)創(chuàng)建
題目:從NumPy數(shù)組創(chuàng)建DataFrame
難度?
備注
使用numpy生成20個(gè)0-100隨機(jī)數(shù)
答案
tem = np.random.randint(1,100,20)
df1 = pd.DataFrame(tem)
83
數(shù)據(jù)創(chuàng)建
題目:從NumPy數(shù)組創(chuàng)建DataFrame
難度?
備注
使用numpy生成20個(gè)0-100固定步長(zhǎng)的數(shù)
答案
tem = np.arange(0,100,5)
df2 = pd.DataFrame(tem)
84
數(shù)據(jù)創(chuàng)建
題目:從NumPy數(shù)組創(chuàng)建DataFrame
難度?
備注
使用numpy生成20個(gè)指定分布(如標(biāo)準(zhǔn)正態(tài)分布)的數(shù)
答案
tem = np.random.normal(0120)
df3 = pd.DataFrame(tem)
85
數(shù)據(jù)創(chuàng)建
題目:將df1,df2,df3按照行合并為新DataFrame
難度??
答案
df = pd.concat([df1,df2,df3],axis=0,ignore_index=True)
86
數(shù)據(jù)創(chuàng)建
題目:將df1,df2,df3按照列合并為新DataFrame
難度??
期望結(jié)果
0 1 2
0 95 0 0.022492
1 22 5 -1.209494
2 3 10 0.876127
3 21 15 -0.162149
4 51 20 -0.815424
5 30 25 -0.303792
...............
答案
df = pd.concat([df1,df2,df3],axis=1,ignore_index=True)
df
87
數(shù)據(jù)查看

題目:查看df所有數(shù)據(jù)的最小值、25%分位數(shù)、中位數(shù)、75%分位數(shù)、最大值
難度??
答案
print(np.percentile(df, q=[0255075100]))
88
數(shù)據(jù)修改
題目:修改列名為col1,col2,col3
難度?
答案
df.columns = ['col1','col2','col3']
89
數(shù)據(jù)提取
題目:提取第一列中不在第二列出現(xiàn)的數(shù)字
難度???
答案
df['col1'][~df['col1'].isin(df['col2'])]
90
數(shù)據(jù)提取
題目:提取第一列和第二列出現(xiàn)頻率最高的三個(gè)數(shù)字
難度???
答案
temp = df['col1'].append(df['col2'])
temp.value_counts().index[:3]
91
數(shù)據(jù)提取
題目:提取第一列中可以整除5的數(shù)字位置
難度???
答案
np.argwhere(df['col1'] % 5==0)
92
數(shù)據(jù)計(jì)算
題目:計(jì)算第一列數(shù)字前一個(gè)與后一個(gè)的差值
難度??
答案
df['col1'].diff().tolist()
93
數(shù)據(jù)處理
題目:將col1,col2,clo3三列順序顛倒
難度??
答案
df.ix[:, ::-1]
94
數(shù)據(jù)提取
題目:提取第一列位置在1,10,15的數(shù)字
難度??
答案
df['col1'].take([1,10,15])

95
數(shù)據(jù)查找

題目:查找第一列的局部最大值位置
難度????
備注
即比它前一個(gè)與后一個(gè)數(shù)字的都大的數(shù)字
答案
tem = np.diff(np.sign(np.diff(df['col1'])))
np.where(tem == -2)[0] + 1
96
數(shù)據(jù)計(jì)算
題目:按行計(jì)算df的每一行均值
難度??
答案
df[['col1','col2','col3']].mean(axis=1)
97
數(shù)據(jù)計(jì)算
題目:對(duì)第二列計(jì)算移動(dòng)平均值
難度???
備注
每次移動(dòng)三個(gè)位置,不可以使用自定義函數(shù)
答案
np.convolve(df['col2'], np.ones(3)/3mode='valid')
98
數(shù)據(jù)修改

題目:將數(shù)據(jù)按照第三列值的大小升序排列
難度??
答案
df.sort_values('col3',inplace=True)

99
數(shù)據(jù)修改
題目:將第一列大于50的數(shù)字修改為'高'
難度??
答案
df.col1[df['col1'] > 50]= '高'
100
數(shù)據(jù)計(jì)算
題目:計(jì)算第一列與第二列之間的歐式距離
難度???
備注
不可以使用自定義函數(shù)
答案
np.linalg.norm(df['col1']-df['col2'])

第五期:一些補(bǔ)充

101
數(shù)據(jù)讀取
題目:從CSV文件中讀取指定數(shù)據(jù)
難度??
備注
從數(shù)據(jù)1中的前10行中讀取positionName, salary兩列
答案
df = pd.read_csv('數(shù)據(jù)1.csv',encoding='gbk', usecols=['positionName''salary'],nrows = 10)
102
數(shù)據(jù)讀取
題目:從CSV文件中讀取指定數(shù)據(jù)
難度??
備注
從數(shù)據(jù)2中讀取數(shù)據(jù)并在讀取數(shù)據(jù)時(shí)將薪資大于10000的為改為高

答案

df = pd.read_csv('數(shù)據(jù)2.csv',converters={'薪資水平': lambda x: '高' if float(x) > 10000 else '低'} )
103
數(shù)據(jù)計(jì)算
題目:從dataframe提取數(shù)據(jù)
難度???
備注
從上一題數(shù)據(jù)中,對(duì)薪資水平列每隔20行進(jìn)行一次抽樣

期望結(jié)果

答案

df.iloc[::20, :][['薪資水平']]
104
數(shù)據(jù)處理
題目:將數(shù)據(jù)取消使用科學(xué)計(jì)數(shù)法
難度??
輸入
df = pd.DataFrame(np.random.random(10)**10, columns=['data'])

期望結(jié)果

答案

df.round(3)
105
數(shù)據(jù)處理
題目:將上一題的數(shù)據(jù)轉(zhuǎn)換為百分?jǐn)?shù)
難度???
期望結(jié)果

答案
df.style.format({'data''{0:.2%}'.format})
106
數(shù)據(jù)查找
題目:查找上一題數(shù)據(jù)中第3大值的行號(hào)
難度???
答案
df['data'].argsort()[::-1][7]

107
數(shù)據(jù)處理
題目:反轉(zhuǎn)df的行
難度??
答案
df.iloc[::-1, :]
108
數(shù)據(jù)重塑
題目:按照多列對(duì)數(shù)據(jù)進(jìn)行合并
難度??
df1= pd.DataFrame({'key1': ['K0''K0''K1''K2'],
'key2': ['K0''K1''K0''K1'],
'A': ['A0''A1''A2''A3'],
'B': ['B0''B1''B2''B3']})

df2= pd.DataFrame({'key1': ['K0''K1''K1''K2'],
'key2': ['K0''K0''K0''K0'],
'C': ['C0''C1''C2''C3'],
'D': ['D0''D1''D2''D3']})
答案
pd.merge(df1, df2, on=['key1''key2'])
109
數(shù)據(jù)重塑

題目:按照多列對(duì)數(shù)據(jù)進(jìn)行合并
難度??

備注

只保存df1的數(shù)據(jù)

答案

pd.merge(df1, df2, how='left'on=['key1''key2'])
110
數(shù)據(jù)處理
題目:再次讀取數(shù)據(jù)1并顯示所有的列
難度??
備注
數(shù)據(jù)中由于列數(shù)較多中間列不顯示
答案
df = pd.read_csv('數(shù)據(jù)1.csv',encoding='gbk')
pd.set_option('display.max.columns'None)
df
111
數(shù)據(jù)查找
題目:查找secondType與thirdType值相等的行號(hào)
難度??
答案
np.where(df.secondType == df.thirdType)
112
數(shù)據(jù)查找
題目:查找薪資大于平均薪資的第三個(gè)數(shù)據(jù)
難度???
答案
np.argwhere(df['salary'] > df['salary'].mean())[2]
113
數(shù)據(jù)計(jì)算

題目:將上一題數(shù)據(jù)的salary列開根號(hào)
難度??
答案
df[['salary']].apply(np.sqrt)
114
數(shù)據(jù)處理
題目:將上一題數(shù)據(jù)的linestaion列按_拆分
難度??
答案
df['split'] = df['linestaion'].str.split('_')
115
數(shù)據(jù)查看
題目:查看上一題數(shù)據(jù)中一共有多少列
難度?
答案
df.shape[1]
116
數(shù)據(jù)提取
題目:提取industryField列以'數(shù)據(jù)'開頭的行
難度??
答案
df[df['industryField'].str.startswith('數(shù)據(jù)')]
117
數(shù)據(jù)計(jì)算
題目:按列制作數(shù)據(jù)透視表
難度???
答案
pd.pivot_table(df,values=['salary','score'],index='positionId')
118
數(shù)據(jù)計(jì)算
題目:同時(shí)對(duì)salary、score兩列進(jìn)行計(jì)算
難度???
答案
df[['salary','score']].agg([np.sum,np.mean,np.min])
119
數(shù)據(jù)計(jì)算
題目:對(duì)不同列執(zhí)行不同的計(jì)算
難度???
備注
對(duì)salary求平均,對(duì)score列求和
答案
df.agg({'salary':np.sum,'score':np.mean})
120
數(shù)據(jù)計(jì)算
題目:計(jì)算并提取平均薪資最高的區(qū)
難度????
答案
df[['district','salary']].groupby(by='district').mean().sort_values('salary',ascending=False).head(1)

以上就是Pandas進(jìn)階修煉120題全部?jī)?nèi)容,如果能堅(jiān)持走到這里的讀者,我想你已經(jīng)掌握了處理數(shù)據(jù)的常用操作,并且在之后的數(shù)據(jù)分析中碰到相關(guān)問題,希望武裝了Pandas的你能夠從容的解決!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
玩轉(zhuǎn)數(shù)據(jù)處理120題|Pandas版本
pandas 數(shù)據(jù)怎樣實(shí)現(xiàn)行間計(jì)算
Python初學(xué)入門----利用pandas模塊進(jìn)行繪圖
答疑一道老師的題目
Python實(shí)現(xiàn)邏輯回歸(Logistic Regression in Python)
Pandas 中文API文檔
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服