替換具體字段列中,值包含0的? 替換成1, 比如值是? x101,? ?那么就會被替換成? x111
df['a'] = df['a'].str.replace('0', '1')
替換具體字段列中,值等于0的? 替換成1沙热, 比如值是? 0,? ?那么就會被替換成? 1脓斩,? ?如果值是? x101,? 那么不會替換,因為需要完全匹配才替換
df['a'] = df['a'].replace('0', '1')
過濾某列中 值 存在一個列表中的行 , 比如下面的列子乐埠,可以取出a字段中,出現(xiàn)值為['aa','ab','ac']列表中的行數(shù)據(jù)
df1 = df[df['a'].isin(['aa', 'ab', 'ac'])]
過濾某列中值 等于,大于饮戳,小于等 獲取數(shù)據(jù)豪治,比如下面的列子, 可以取出a字段中大于等于666的數(shù)據(jù),大于和小于用在數(shù)據(jù)類型上扯罐,等于可以用數(shù)字负拟,字符串上都可以,下面是兩種方法
df_filter = df[df["a"] >=666]
df_filter = df.loc[df.a >=666]
根據(jù)字段列排序歹河,可多字段,多字段排序把‘a(chǎn)’改成['a','b']掩浙,與sql中order by功能相同, 下面舉例是根據(jù) a 字段降序,并替換原有的df,? ?注意排序的值類型必須統(tǒng)一
df.sort_values(by='a', ascending=False,inplace=True)
對列進(jìn)行去重秸歧,第二個參數(shù) keep 包含的值 有: first厨姚、last、False键菱,
df.drop_duplicates(subset=['a'], keep='last', inplace=True)
df.drop_duplicates(keep='last', inplace=True)? ? ? ? ? ? ? ? ? ?#第一個參數(shù)不寫時谬墙,表示對所有列進(jìn)行去重,保持每行是唯一的
刪除具體列為nan的行经备,df1等于df中a列不為空的數(shù)據(jù)拭抬,既刪除了a列中為nan的行
df1 = df[pd.notna(df['a'])]
填充值為nan的單元格
df1.fillna('value', inplace=True)? ? ? ? ? ? ? ? ? ? ? #用指定值value填充,并替換原df? ? ? ? ? ? ? ? ? ?
df1.fillna({'a':'aa', 'b':'bb'}, ?inplace=True)? ? ? ?#用字典里對應(yīng)指定值填充侵蒙,并替換原df
df1.fillna(method='ffill',??inplace=True)? ? ? ? ? ?#用前一個非缺失值填充該缺失值造虎,并替換原df
df1.fillna(method='bfill',??inplace=True)? ? ? ? ? ?#用后一個非缺失值填充該缺失值,并替換原df
過濾某列中 值 是否包含指定值纷闺,與mysql的like '%abc%'功能一樣, 下面例子:過濾df的a字段中包含了'abc'的行
df = df[df['a'].str.contains('abc')]
統(tǒng)計dataframe里指定列所有值出現(xiàn)的次數(shù), 比如取 a 列所有數(shù)據(jù)出現(xiàn)的次數(shù)
df['a'].value_counts()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #此方法生產(chǎn)了一個series
df['a'].value_counts().to_dict()? ? ? ? ? ? ? ? ? ?#此方法生產(chǎn)了一個字段算凿,key是a列的值,value是值出現(xiàn)的次數(shù)
df1 = pd.DataFrame(list(df['a'].value_counts().to_dict().items()), columns=['a','a_count'])? ? ? # 此方法在統(tǒng)計a列每個值出現(xiàn)的次數(shù)后再轉(zhuǎn)換成dataframe, 其中df1的a列于df的a列是可以merge的犁功, df1的c_count則是出現(xiàn)的次數(shù)
dataframe轉(zhuǎn)換成列表嵌套字段氓轰,列表里的每一個元素為字典,代表每一行數(shù)據(jù)波桩,每個字典是有多個key戒努,value,key為字段名镐躲,value為具體數(shù)據(jù)
df1 = df.to_dict('records')