pandas和內建的python標準庫提供了一組高階的、靈活的、 快速的工具,可以讓你輕鬆地將資料規整為想要的格式。
一些關於缺失資料處理的函式:
thresh引數,這個意思是脫穀/打穀,即讓種子和穀物的枝條分離。
isnull和notnull, 返回乙個bool物件。
data = pd.series([1, np.nan, 3.5, np.nan, 7])data.dropna()
#返回的是去掉缺失值的物件。
0 1.0
2 3.5
4 7.0dtype: float64
#還可以使用
data[data.notnull()]
例子1:
#使用字典dict,為不同的列填充不同的值
df.fillna()
例子2:
使用method和limit引數:
df = pd.dataframe(np.random.randn(6, 3))df.iloc[2:, 1] =na
df.iloc[4:, 2] =na
... 0
1 2
0 0.556356 0.081234 0.146193
1 1.278347 0.631483 3.188404
2 -2.243820 nan -0.376037
3 -1.616570 nan -0.739994
4 0.017522 nan nan
5 0.019936 nan nan
...
df.fillna(method="ffill
", limit= 2)
0
1 2
0 0.556356 0.081234 0.146193
1 1.278347 0.631483 3.188404
2 -2.243820 0.631483 -0.376037
3 -1.616570 0.631483 -0.739994
4 0.017522 nan -0.739994
5 0.019936 nan -0.739994
例子3:可以填充任意資料,比如填充均值:
df.fillna(data.mean())
過濾、清理以及其他的轉換工作
data.duplicated(), 如果是完全一樣的行,則是重複行,最返回乙個bool series。
data.drop_duplicates(), 去除完全一樣的行的第一行, 返回乙個新的物件。
用map函式進行元素級別的替換。
乙個食物和其重量的2維表:
data = pd.dataframe()
增加一列animal,表示食物取自那種動物。
首先:乙個dict對映。key是食物,values是動物名字。
meat_to_animal =
map方法接受乙個函式/對映進行資料替換:
1:使用字典對映:
#把大些字母變為小些字母
lowercased = data['
food
'].str.lower()
#使用map替換資料,並為data新增一列,並儲存替換的值:
data['
animal
'] = lowercased.map(meat_to_animal)
2:或者使用函式lambda
data['animals
'] = data['
food
'].map(lambda x : meat_to_animal[x.lower])
fillna()是把nan,替換為指定的值,一種特殊的替換。
而data.replace(from, to), 可以把任意數量的值進行任意的替換。⚠️:
python能夠成為流行的資料處理語言,部分原因是其簡單易用的字串和文字處理功能:
字串物件方法
正規表示式
pandas的向量化字串函式
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...
Pandas的資料清洗
如果一列中含有多個型別,則該列的型別會是object,同樣字串型別的列也會被當成object型別.提取需要的2列資料 data statistic key data statistic time key 刪除空資料的行 data statistic key data statistic key.dr...