1.型別轉換
import pandas as pd
import datetime
法1:
dt =
'2019/06/13 16:16:39'
d ='2017-04-24'
str2datetime = datetime.datetime.strptime(dt,
'%y/%m/%d %h:%m:%s'
)str2date1 = datetime.datetime.strptime(d,
'%y-%m-%d'
)str2date2 = datetime.datetime.strptime(d,
'%y-%m-%d'
).date(
)print
(str2datetime)
print
(str2date1)
print
(str2date2)
2019-06-13 16:16:39
2017-04-24 00:00:00
2017-04-24
法2:
# 字串轉換為時間格式
dt = pd.dataframe(
['2019/06/13 16:16:39'
,'2019-03-02 23:12:23'
,'2019-03-22 13:12:23'
,'2019-05-02 15:12:30'
,'2019-04-02 17:33:23'
,'20/05/02'])
print
(dt)
0
0 2019/06/13 16:16:39
1 2019-03-02 23:12:23
2 2019-03-22 13:12:23
3 2019-05-02 15:12:30
4 2019-04-02 17:33:23
5 20/05/02
dt.iloc[:,
0]= pd.to_datetime(dt.iloc[:,
0],format
='%y-%m-%d'
,errors =
'coerce'
)# 將其他格式顯示成nat
print
(dt)
0
0 2019-06-13 16:16:39
1 2019-03-02 23:12:23
2 2019-03-22 13:12:23
3 2019-05-02 15:12:30
4 2019-04-02 17:33:23
5 nat
salesdf=dt.dropna(how=
'any'
)print
(salesdf)
0
0 2019-06-13 16:16:39
1 2019-03-02 23:12:23
2 2019-03-22 13:12:23
3 2019-05-02 15:12:30
4 2019-04-02 17:33:23
1.刪除缺失值dropna() 預設刪除含有缺失值的行,引數how = 'all』指刪除全部為空值的行
data3 = pd.read_excel(io=r'd:\bd\data3.xlsx'
)
data3.dtypes
id int64
gender object
age float64
edu object
custom_amt object
order_date object
dtype: object
data3.head(
)
idgender
ageedu
custom_amt
order_date
0890
female
43.0
nan¥2177.94
2023年12月25日
12391
male
52.0
nan¥2442.18
2023年5月24日
22785
male
39.0
nan¥849.79
2023年5月15日
31361
female
26.0
nan¥2482.22
2023年5月16日
4888
female
61.0
本科¥2027.9
2023年1月21日
上述資料中使用者id應為字元型,消費金額應為數值型,訂單日期應為日期型
# 使用者id轉換為字元型
data3[
'id'
]= data3[
'id'
].astype(
str)
# 使用者消費金額轉換為數值型 ,消費金額中包含人民幣符號'¥',所以要從第二個元素開始截斷
data3[
'custom_amt'
]= data3[
'custom_amt'].
str[1:
].astype(
float
)# 訂單日期轉換為日期型
data3[
'order_date'
]= pd.to_datetime(data3[
'order_date'],
format
='%y年%m月%d日'
)
2.刪除重複資料判斷資料中是否存在重複觀測,如果不加any(),則會返回乙個與原資料行數相同的序列,使用了any()方法,則只返回乙個值(true或false)data3.duplicated().any()
duplicated方法和drop_duplicates方法 都有乙個重要的引數,預設情況下不設定該引數時,表示對資料的所有列進行重複性判斷,如果需要按照指定的變數做資料的重複性判斷時,就可以使用該引數指定具體的變數列表。
# 構造資料
df = pd.dataframe(
dict
(name =
['張三'
,'李四'
,'王二'
,'張三'
,'趙五'
,'丁一'
,'王二'],
gender =
['男'
,'男'
,'女'
,'男'
,'女'
,'女'
,'男'],
age =[29
,25,27
,29,21
,22,27
],income =
[15600
,14000
,18500
,15600
,10500
,18000
,13000],
edu =
['本科'
,'本科'
,'碩士'
,'本科'
,'大專'
,'本科'
,'碩士'])
)df
name
gender
ageincome
edu0張三男
2915600本科1
李四男2514000本科2
王二女2718500碩士3
張三男2915600本科4
趙五女2110500大專5
丁一女2218000本科6
王二男2713000
碩士
# 預設情況下,對每行所有變數進行判斷,刪除第二條重複行,刪除第二行的張三
df.drop_duplicates(
)
name
gender
ageincome
edu0張三男
2915600本科1
李四男2514000本科2
王二女2718500碩士4
趙五女2110500大專5
丁一女2218000本科6
王二男2713000
碩士
# 根據使用者姓名和年齡來刪除重複值
df.drop_duplicates(subset =
['name'
,'age'
])
name
gender
ageincome
edu0張三男
2915600本科1
李四男2514000本科2
王二女2718500碩士4
趙五女2110500大專5
丁一女2218000本科
使用drop_duplicates方法刪除重複資料,並不能直接影響到原始資料,即原始資料中還是存在重複觀測的,若使用inplace = true,則會用刪除後的資料替換原始資料
mysql資料冗餘 MySQL冗餘資料的三種方案
一,為什麼要冗餘資料 網際網路資料量很大的業務場景,往往資料庫需要進行水平切分來降低單庫資料量。水平切分會有乙個patition key,通過patition key的查詢能夠直接定位到庫,但是非patition key上的查詢可能就需要掃瞄多個庫了。此時常見的架構設計方案,是使用資料冗餘這種反正規...
python處理txt去掉同類的冗餘資料
在天池資料競賽中需要對其提供的資料進行處理。現在有這樣一些資料,例如 1 78687679,7879877 79879 2 98797 7980787,87987907 3 9809789,987987,8798789 89798798,9878907 4 987686 9870987987 879...
HDFS 冗餘資料塊的自動刪除
在日常維護hadoop集群的過程中發現這樣一種情況 某個節點由於網路故障或者datanode程序死亡,被namenode判定為死亡,hdfs馬上自動開始資料塊的容錯拷貝 當該節點重新新增到集群中時,由於該節點上的資料其實並沒有損壞,所以造成了hdfs上某些block的備份數超過了設定的備份數。通過觀...