數據分析數據可視化(二)

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 一週中的第幾天

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章