pandas使用指南完整版

2021-08-28 19:36:12 字數 3759 閱讀 5316

建立dataframe物件

建立dataframe物件的資料可以為列表,陣列和字典

import pandas as pd

import numpy as np

a = [[1, 2, 3],[4, 5, 6]] #二維矩陣

df2 = pd.dataframe(a, columns=[『col1』,『col2』,『col3』], index=[『a』,『b』])

print df2

結果:col1 col2 col3

a 1 2 3

b 4 5 6

讀取excel格式

data = pd.read_excel(『四創-渠道.xlsx』,sheetname=『單篇**』)#sheetname指定sheet

儲存成csv格式

不要index和header的儲存

data_train.to_csv(『temp/data_train.csv』,encoding=『utf8』,index=false,header = false)

一、增列連線(橫向:變寬):merge

前提:header要一致

df1 = pd.dataframe()

df2 = pd.dataframe()

df3 = pd.merge(df1, df2)

結果:df1:

key data1

0 a 1

1 b 2

2 c 3

df2:

key data2

0 a 4

1 b 5

2 c 6

df3key data1 data2

0 a 1 4

1 b 2 5

2 c 3 6

行連線(縱向:變長):concat

前提:header要一致

import pandas as pd

df1=pd.dataframe()

df2=pd.dataframe()

df3=pd.concat([df1,df2],ignore_index=true)

結果:df1:

key data

0 a 1

1 b 2

2 c 3

df2:

key data

0 d 4

1 e 5

2 f 6

df3:

key data

0 a 1

1 b 2

2 c 3

0 d 4

1 e 5

2 f 6

根據索引合併

a = [[1, 2, 3], [4, 5, 6]] # 二維矩陣

df1 = pd.dataframe(a, columns=[『col4』, 『col5』, 『col6』])

df2 = pd.dataframe(a, columns=[『col1』, 『col2』, 『col3』])

df = pd.merge(df1,df2 , left_index= true,right_index= true)

dataframe物件的合併

df_a = pd.dataframe([『wang』,『jing』,『hui』,『is』,『a』,『master』],columns=[『col6』],index=[『a』,『b』,『c』,『d』,『e』,『f』])

dfb = pd.dataframe([1,2,4,5,6,7],columns=[『col1』],index=[『a』,『b』,『c』,『d』,『f』,『g』])

df_a

col6

a wang

b jing

c hui

d is

e af master

dfbcol1

a 1b 2

c 4d 5

f 6g 7

print dfb.join(df_a)

col1 col6

a 1 wang

b 2 jing

c 4 hui

d 5 is

f 6 master

g 7 nan

#通過指定引數 how,指定合併的方式

print dfb.join(df_a,how=『inner』)

print dfb.join(df_a,how=『outer』)

用某幾列計算生成新列

方法一:

import pandas as pd

df=pd.dataframe()

print(df)

df[『data3』]=df[『data1』]+df[『data2』]

print(df)

方法二:

import pandas as pd

import math

def testme(x):

print(x[『data1』],x[『data2』])

return x[『data1』] + x[『data2』]

結果:data1 data2 key

0 1 4 a

1 2 5 b

2 3 6 c

data1 data2 key data3

0 1 4 a 5

1 2 5 b 7

2 3 6 c 9

列擴充df2 = pd.dataframe([[1, 2, 3],[4, 5, 6]], columns=[『col1』,『col2』,『col3』],index = [『a』,『b』])

print(df2)

結果:col1 col2 col3

a 1 2 3

b 4 5 6

df2[『col4』] = [『cnn』,『rnn』]

print df2

結果:col1 col2 col3 col4

a 1 2 3 3

b 4 5 6 2

二、刪行刪除:

df.drop([『column-name』], axis = 0)

刪除某列指定的幾行

eg:刪除日期為data_dele的資料 data_dele = [『2018-09-13』,『2018-09-14』,『2018-09-15』,『2018-09-16』]

data=data[~data[『日期』].isin(data_dele)]

列刪除:

df.drop([『column-name』], axis = 1,inplace=none) #inplace預設為none,表示不在原本的df上修改,true在原本的df上修改 del df[『column-name』] #對原來的df的改變

刪除後出現的重複值:df[『city』].drop_duplicates()

刪除先出現的重複值:df[『city』].drop_duplicates(keep=『last』)

獲取唯一的dataframe: data.drop_duplicates([『日期』])

import pandas as pd

import math

df=pd.dataframe()

print(df)

df=df.drop([『data2』],axis=1)

print(df)

結果:data1 data2 key

0 1 4 a 

1 2 5 b

2 3 6 c

data1 key

0 1 a

1 2 b

2 3 c

load[『ld』] = load[『ld』].str.rstrip(』%』).astype(『float』)

mysql完整版 MYSQL安裝(完整版)

一 完全解除安裝mysql yum remove mysql mysql server mysql libs compat mysql51 rm rf var lib mysql rm etc my.cnf 檢視是否還有mysql軟體 rpm qa grep mysql 如果存在的話,繼續刪除即可。...

php完整版,ThinkPHP5 0完整版

thinkphp5.0版本是乙個顛覆和重構版本,官方團隊歷時十月,傾注了大量的時間和精力,採用全新的架構思想,引入了更多的php新特性,優化了核心,減少了依賴,實現了真正的惰性載入,支援composer,並針對api開發做了大量的優化,包括路由 日誌 異常 模型 資料庫 模板引擎和驗證等模組都已經重...

vue完整版和非完整版的區別和使用

官網最全 兩個版本對應的檔名 完整版 vue.js 內含compiler,編譯器可以把試圖上的html轉成dom節點,轉成html中的內容,所以體積大,不建議用,是從html獲得檢視。非完整版 vue.runtime.js template 和 render 怎麼用 templete是檢視的內容,可...