pandas

import pandas as pd

#創建數據集
df = pd.DataFrame(
{
‘名稱’:[‘產品1’,‘產品2’,‘產品3’,‘產品4’,‘產品5’,‘產品6’,‘產品7’,‘產品8’],
‘數量’:[‘A’,‘0.7’,‘0.8’,‘0.4’,‘0.7’,‘B’,‘0.76’,‘0.28’],
‘金額’:[‘0’,‘0.48’,‘0.33’,‘C’,‘0.74’,‘0’,‘0’,‘0.22’],
‘合計’:[‘D’,‘0.37’,‘0.28’,‘E’,‘0.57’,‘F’,‘0’,‘0.06’],
}
)

#搜索整個DataFrame, 並將所有符合條件的元素全部替換。操作之後,其實原DataFrame是並沒有改變的。改變的只是一個複製品。
df.replace(‘A’, 0.1)

#如果需要改變原數據,需要添加常用參數 inplace=True
df.replace(‘A’, 0.1, inplace=True)

#inplace這個參數在一般情況沒多大用處,但是如果只替換部分區域時,inplace參數就有用了
df[‘金額’].replace(0, 0.22, inplace=True)
‘’’
在上面這個操作中,‘合計’這一列中的0,並沒有被替換。
只有‘金額’這一列的0被替換,而且,替換後的結果不需要我們再和原數據進行合併操作,直接體現在原數據中。
‘’’

#可以用字典形式替換多個值
df.replace({‘C’:0.9999, ‘F’:0.7777})
df.replace([‘C’, ‘F’], [0.999, 0.777])
df[‘合計’].replace({‘D’:0.11111, ‘F’:0.22222}, inplace=True)

#如果替換的值都是一樣的話
df.replace([‘C’, ‘F’], 0.33333)
df[‘合計’].replace([‘D’, ‘F’], 0.0111, inplace=True)

#參數regex,可以使用正則表達式替換多個
df.replace(’[A-Z]’, 0.99, regex=True)

#只需要替換某個數據的部分內容
df[‘名稱’].str.replace(‘產品’, ‘product’)

#某些列滿足特定條件,然後改變另外的某些列的值
df.loc[df[‘數量’] == ‘A’, ‘合計’] = ‘changed’ # 關鍵句,直接改變df的值
df.loc[df[‘合計’].str.contains(‘change’), ‘數量’] = ‘A’ #使用countains可以用來正則匹配篩選

刪除pandas DataFrame的某一/幾列:

方法一:直接del DF[‘column-name’]

方法二:採用drop方法,有下面三種等價的表達式:

  1. DF= DF.drop(‘column_name’, 1);

  2. DF.drop(‘column_name’,axis=1, inplace=True)

  3. DF.drop([DF.columns[[0,1, 3]]], axis=1,inplace=True) # Note: zero indexed

注意:凡是會對原數組作出修改並返回一個新數組的,往往都有一個 inplace可選參數。如果手動設定爲True(默認爲False),那麼原數組直接就被替換。也就是說,採用inplace=True之後,原數組名(如2和3情況所示)對應的內存值直接改變;而採用inplace=False之後,原數組名對應的內存值並不改變,需要將新的結果賦給一個新的數組或者覆蓋原數組的內存位置(如1情況所示)。

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