1.向量化計算:
向量化計算是一種特殊的並行計算的方式,相比於一般程序在同一時間只能執行一個操作方式,它可以在同一時間執行多次操作,通常是對不同的數據執行同樣的一個或一批指令,或者說把指令應用於一個數組/向量。
2.數據導入:
2.1.導入CSV文件:用read_csv導入csv文件。
from pandas import read_csv
df=read_csv(r'C:\Users\13056\Desktop\data.csv',encoding='utf-8')
print(df)
成功導入文件:
日期 購買用戶數 廣告費用 渠道數
0 2014-01-01 2496 9.14 6
1 2014-01-02 2513 9.47 8
2 2014-01-03 2228 6.31 4
3 2014-01-04 2336 6.41 2
4 2014-01-05 2508 9.05 5
.. ... ... ... ...
153 2014-06-26 2492 8.72 2
154 2014-06-27 2712 10.80 5
155 2014-06-28 2369 7.35 5
156 2014-06-29 2380 7.19 4
157 2014-06-30 2377 7.06 2
2.2導入文本文件:用read_table導入普通文本文件
read_table(路徑,列名,分隔符,編碼)
from pandas import read_table
df=read_table(r'C:\Users\13056\Desktop\1234.txt',names=['name','age'],sep=' ',encoding='utf-8')
print(df)
得出數據
name age
0 張三 21
1 李四 22
2 王五 23
2.3導入Excel文件:使用read_excel函數導入Excel文件。
read_excel(路徑,sheet的名字,列名)
from pandas import read_excel
df=read_excel(r'C:\Users\13056\Desktop\123.xlsx',sheetname='data')
print(df)
3.導出數據
導出文本文件:to_csv函數
to_csv(路徑,分隔符,導出行列號,列名)
```python
from pandas import DataFrame
data=DataFrame(data={
'id':[1,2,3],
'name':['join','mike','hero']
}
)
data.to_csv(r'C:\Users\13056\Documents\Tencent Files\1305638814\FileRecv\d1.csv')
4.對重複數據進行處理
```python
from pandas import DataFrame
data=DataFrame(data={
'id':[1,2,3,2],
'name':['join','mike','hero','mike']}
)
data=data.drop_duplicates()
print(data)
5.缺失值處理
去除數據結構中值爲空的數據
data=data.dropna()
6.空格值處理
from pandas import DataFrame
data=DataFrame(data={
'id':[1,2,3],
'name':['join','mike',' hero']
}
)
name=data['name'].str.strip()
data['name']=name
print(data)
7.字段抽取:已知數據的開始和結束位置,抽取出新的列
from pandas import DataFrame
data=DataFrame(data={
'id':[1,2,3],
'tel':['123445','12345','1245552']
}
)
data['tel']=data['tel'].astype(str)
badns=data['tel'].str.slice(0,3)
print(badns)
#0 123
#1 123
#2 124
8.字段拆分:拆分已有字符串
split(用於切割的字符串,分爲多少列,是否展開爲數據框)
from pandas import DataFrame
data=DataFrame(data={
'id':[1,2,3],
'tel':['12 3445','12 345','12 45552']
}
)
data['tel']=data['tel'].astype(str)
badns=data['tel'].str.split(' ',1,True)
print(badns)
# 0 1
#0 12 3445
#1 12 345
#2 12 45552
9.記錄抽取
(1)比較運算:df[df.comments>10000]
(2)範圍運算:df[df.comments.between(1000,10000)]
(3)空值匹配:df[pandas.isnull(df.title)]
(4)字符匹配:df[df.title.str.contatins('開學‘,na=False)]
(5)邏輯運算:df[(df.comments>=1000)&(df.comments<=10000)]
10.隨機抽樣:
import numpy
r=numpy.random.randint(0,10,3);
#從0到10取3個
from pandas import read_csv
df=read_csv(r'C:\Users\13056\Desktop\data.csv',encoding='utf-8')
df=df.loc[r,:];
print(df)
# 日期 購買用戶數 廣告費用 渠道數
#8 2014-01-09 2358 7.39 5
#4 2014-01-05 2508 9.05 5
#9 2014-01-10 2419 8.17 6
11.記錄合併
from pandas import DataFrame,concat
a1=DataFrame(data={
'name':['小米8','紅米','k30'],
'price':[1222,'一千',{1,2,3}]},
index=['first','second',3]
)
a2=DataFrame(data={
'name':['oppe','紅米','k30'],
'price':[1,'一千',{1,2,3}]},
index=['first','second',3]
)
df=concat([a1,a2])
print(df)
# name price
#first 小米8 1222
#second 紅米 一千
#3 k30 {1, 2, 3}
#first oppe 1
#second 紅米 一千
#3 k30 {1, 2, 3}
12.字段合併:要求數據結構一致,直接用+就可以了。
13.字段匹配,不同結構的數據庫按照一定的條件合併。
from pandas import DataFrame,merge
a1=DataFrame(data={
'name':['小米8','紅米','k30'],
'price':[1222,'一千',{1,2,3}],
'id':[1,2,3]},
index=['first','second',3]
)
a2=DataFrame(data={
'lalal':['oppe','紅米','k30'],
'price':[1222,'一千',{1,2,3}],
'id':[1,2,3]},
index=['first','second',3]
)
df=merge(
a1,
a2,
left_on='id',#左邊合併的目標
right_on='id'#右邊合併的目標
)
print(df)
# name price_x id lalal price_y
#0 小米8 1222 1 oppe 1222
#1 紅米 一千 2 紅米 一千
#2 k30 {1, 2, 3} 3 k30 {1, 2, 3}
14.數據標準化
0-1標準化:
x*=(x-min)/(max-min)
15.數據分組
cut(需要分組的數據,分組劃分的分組,右邊是否閉合,自定義標籤)
import pandas;
from pandas import read_csv
df=read_csv(r'C:\Users\13056\Desktop\data.csv',sep="|")
bins=[min(df.cost)-1,20,40,60,80,100,max(df.cost)+1]
labels=['20以下','20到40','40到60','60到80','80到100','100以上']
result=pandas.cut(df.cost,bins=bins,right=False,labels=labels)
print(result)
cast是根據的對應物,當然也可以用groupby.
16.日期轉換:
data=to_datatime(dataString,format)
屬性 註釋
%Y 代表年份
%m 代表月份
%d 代表日期
%H 代表小時
%M 代表分種
%S 代表秒
17.日期格式化:將日期型數據,按照給定的格式轉爲字符型的數據
apply(lambda x:datetime.strftime(x,format))
18.日期抽取:從日期格式裏面抽取出需要的屬性。
屬性 註釋
second 秒
minute 分鐘
day 一個月中的天
hour 小時
month 月
year 年
weekday 一週中的第幾天