1、去除重複值
(1)利用pdandas的dataframe 中的df.duplicated() 顯示是否有重複值,重複則為true,沒有重複則為false。
df.duplicated()
df.duplicated(「某列」)
(2)再利用drop.duplicates返回去除重複值的dataframe。
df.drop_duplicated(「某列」)
列子:#去重複值
import pandas as pd
df=pd.read_csv(「000014.sz.csv」,encoding=「utf-8」)
df.duplicated()
print(df.duplicated(「close」))
print(df.drop_duplicates(「close」))
2、缺失值處理
**(1)缺失值的識別
表示 nan.
使用.isnull和.notnull函式來判斷是否缺失。
(2)刪除有缺失值的行
df.dropna()
(3)填充
1)用其他值來填充缺失值
df.fillna(「某值」)
2)用前乙個值來代替缺失值
df.fillna(method=「pad」) #如果缺失值在第一行,沒有前乙個值,故不能填充
3)用後乙個值來代替缺失值
df.fillna(method=「bfill」)#如果缺失值在最後一行,沒有後乙個值,故不能填充
4)用平均值來填充
df.fillna(df.mean())
(4)刪除左右或者指定的字元預設為刪除空格,也可以帶引數
str.strip()
刪除右邊的字元 df[「列名」].str.rstrip()
刪除左邊的字元 df[「列名」].str.lstrip()
刪除 邊的某」字元 df[「列名」].str.lstrip(「某字元」)
例子:import pandas as pd
df=pd.read_csv(「000014.sz.csv」,encoding=「utf-8」)
#檢視顯示缺失值
print(df.isnull())#缺失的表示為true
print(df.notnull())#缺失的表示為false
#去除有缺失值的行
print(df.dropna())#去除有缺失值的行
#填充print(df.fillna(method=「pad」))#如果缺失值在第一行,沒有前乙個值,故不能填充
print(df.fillna(method=「bfill」))#如果缺失值在最後一行,沒有後乙個值,故不能填充
print(df.fillna(df.mean()))#用平均值來填充
df.fillna(df.mean()[「open」:「amount」])#用後面列出的"amount"平均值來填充"open"~~*## 不能用
df.fillna()#用字典來代替
print(df[「ts_code」].str.rstrip(「z」)) 刪除右邊的「z」字元
df[「列名」] .str.slice()
import pandas as pd
df=pd.read_csv(「000014.sz.csv」,encoding=「utf-8」)
#一、字段抽取 str.slice()
#先轉換為字元型別
df[「trade_date」]=df[「trade_date」].astype(str)
print(df[「trade_date」])
#抽取某列的前三位
print(df[「trade_date」].str.slice(0,3))#切記不要漏掉str
print(df[「trade_date」].str.slice(2,4))#抽取某列的三四位
#二、字段拆分 split()
df[「列名」] .str.split(「分隔符」)
dff=df[「trade_date」].str.split(「0」)
print(dff)#切記不要漏掉str。用分隔符。
#新增列名
dff.columns=[「a」,「b」,「c」,「d」]
print(dff)
dfff=df.set_index(「trade_date」)
print(dfff)
1、根據一定條件抽取資料
#條件有
「」「比較大小
範圍between(n,m)
空值運算df.「某列」.null()
字元匹配 str.contains(「列名」,na=false)
邏輯運算 & | not
「」」print(df[df.high>9])#比較大小
print(df[df.high.between(9,10)])#範圍between(n,m)
print(df[df.open.isnull()])#有空值的行
print(df[df.open.notnull()])#不是空值的行
print(df[df.ts_code.str.contains(「000015.sz」,na=false)]) #某列包含某字 na不明白
print(df[df.ts_code.str.contains(「000015.sz」,na=true)])#某列包含某字 na不明白
2、隨機取樣
np.random.randit(開始數,結束數,個數)
模型 1
df[df.列名》=某數] & df[df.列名、,=某數]
模型2r=np.random.randit(0,10,3)
print®
df.loc[r,:]
例子:import pandas as pd
import numpy as np
import random
df=pd.read_csv(「000014.sz.csv」,encoding=「utf-8」)
r=np.random.randint(0,10,3)
print®
print(df.loc[r,:])
3、通過索引抽取資料
df.loc
例子:import pandas as pd
import numpy as np
import random
df=pd.read_csv(「000014.sz.csv」,encoding=「utf-8」)
df=df.set_index(「trade_date」)
print(df)
#取得區間行,竟然加不加引號都一樣
print(df.loc[20200220:20200218])
print(df.loc[「20200220」:「20200218」])
print(df.iloc[0:2])
#如上,loc為字串索引,iloc為索引號索引()
#取得某行和某行,有間隔的,要多加乙個中括號,形成列表,不然會出錯。
print(df.loc[[20200220,20200218]])
#取得某列的所有行,記得前面的冒號和逗號
print(df.loc[:,「open」])
import pandas as pd
#建立乙個列表
index_loc=[「a」,「b」]
index_iloc=[1,2]
data=[[1,2,3,4],[5,6,7,8]]
columns=[「one」,「two」,「three」,「four」]
df1=pd.dataframe(data=data,index=index_loc,columns=columns)
df2=pd.dataframe(data=data,index=index_iloc,columns=columns)
print(df1)
print(df1.ix[「a」])
print(df2)
4、字典資料抽取
1)import pandas as pd
d1=a1=pd.dataframe.from_dict(d1,orient=「index」)# 以key為索引
print(a1)
a1.index.name=「key」 #索引命名
b1=a1.reset_index() #以預設索引重新增加索引
b1.columns=[「key」,「value」] #重定義列名
print(b1)
2)鍵 值等長
import pandas as pd
d1=a1=pd.dataframe(d1)# 以key為索引
print(a1)
a1.index.name=「key」 #索引命名
a1.columns=[「key」,「value」] #重定義列名
print(a1)
以1)為列的重新命名
a1.index.name=「key」 #索引命名
b1=a1.reset_index() #以預設索引重新增加索引
a1.columns=[「nn」,「value」,「nn」] #重定義列名
print(a1)
3)鍵 值不等長
需要 series 格式
C語言 第二章 簡單的資料處理(一)
摘要 1.如何輸出資料 2.定義變數 3.簡單的運算 如何輸出資料 例一 includeint main 該 的執行結果為 the sum is 3printf the sum is d n 1 2 分析 輸出的內容為雙引號中的內容,其中 d處輸出的是逗號後1 2的結果資料。高階1 下面我們來看乙個...
python第二章上機實踐 演算法第二章上機實踐報告
1.實踐題目名稱 找第k小的數 2.問題描述 在n 1 n 1000 個無序的整數中找出第k小的數,且時間複雜度為o n 3.演算法描述 int partition int a,int left,int right 函式功能 將輸入的陣列進行排序,排序後的陣列需要滿足 基準左邊的數都小於基準,基準右...
python第二章上機實踐 第二章上機實踐報告
設計乙個平均時間為o n 的演算法,在n 1 n 1000 個無序的整數中找出第k小的數。輸入格式 輸入有兩行 第一行是n和k,0 第二行是n個整數 輸出格式 輸出第k小的數 輸入樣例 在這裡給出一組輸入。例如 10 4 2 8 9 0 1 3 6 7 8 2 輸出樣例 在這裡給出相應的輸出。例如 ...