df=pd.read_csv('檔名稱')
df.info()
df.shape
df.describe()
df.drop_duplicates(inplace=true)
data.reset_index(inplace=true,drop=true)
data.loc[data['列名'].isnull()]
01 每一列資料的缺失值進行統計data.isnull().sum()
# 用0填充
data=data.fina(0)
# 將這一列的空值填充為平均值,型別為int型別
df_all['列名'] = df_all.列名.fillna(int(df_all.列名.mean())).astype('int')
data.isnull().any()
data['列名'].value_counts
data['列名'].value_counts().sort_values()
01 統計店名的銷售額,並排序data.groupby('店名')['銷售額'].sum().sort_values
cols=df_tm.columns
for col in cols:
print(col+':'+str(df_tm[col].dtype))
df['列名']=df.列名.astype('int')
01 去掉溫度列後的℃,並將資料轉為int型別df.loc[:,'bwendu']=df['bwendu'].str.replace('℃','').astype('int32')
02 對某列資料轉換型別data['列名']=data['列名'].astype(int)
mydf.dropna(subset=['列名'],inplace=true)
mysf=mydf.dropna(subset=['列名'])
data=data[`data['列名'].isin(['你好'])]
例:20110/02/02====》202-02-02
data['列名']=pd.to_datetime(data)['time']
data.drop(['列名'],axis=1,inplace=true)
rename_list=
df.rename(rename_list,axis=1,inplace=true)
df[['列1','列2','列3']]
df_all=pd.merge(table1,table2,on='參照列',how='inner')
a.replace('\s+','',regex=true,inplace=true)
# ciy: 提取國家和城市
def transform_country(x):
if '中國' in x:
return '中國'
else:
return x
def transform_city(x):
if '中國' in x:
# height:提取數值
# age: 提取年齡
df_all['age'] = df_all.age.str.extract('.*?\s*\((.*?)歲\)').astype('float')
注釋:str(x) 為了將資料轉換為字元型別
m3 = data1['出發時間'].value_counts().sort_index()[:]
m4 = m3['2020'].index
n4 = m3['2020'].values.tolist()
# 將其轉化為時間格式的陣列
a1 = m4.to_pydatetime()
# 時間轉換成以下格式
a2 = np.vectorize(lambda s: s.strftime('%y-%m-%d'))(a1)
a3 = pd.series(a2).tolist
輸出m4,如下圖所示
輸出a1,如下
輸出a2 ,如下
輸出a3,如下
pandas常用資料清洗方法
以下各例子均使用如下資料集進行演示。判斷各行是重複,false為非重複值。刪除重複行 通過指定列,刪除重複行 對缺失值進行填充 用實數0填充na。通常情況下,刪除行使用引數axis 0,刪除列使用axis 1。按列刪除缺失值,使用引數axis 1。how all 全部是na才刪,any 只要有na就...
pandas資料清洗
1 檢視重複的行 df.duplicated 2 檢視某列重複的行df.duplicated 列標籤 3 刪除重複的行df.drop duplicates 4 刪除某一列重複的行df.drop duplicates 列標籤 1 判斷資料缺失df.isnull 2 資料未缺失df.notnull 3 ...
pandas資料清洗
df.query 查詢符合某個條件語句的 and or 新增一列的值等於df其中兩列的加和 分組求和 df.groupby 可以指定某列進行求和df.groupby 姓名 df插入一列在指定索引 方法一 df.insert 0,colname,value insert one col at firs...