整理的這些東動(dòng)為的是讓自己加深印象,就像一本字典一樣可以隨時(shí)查閱吧。沒別的意思
df.isnull()?? 輸出的是布爾值
df.isnull().sum()? 每一列的空值的數(shù)量加總 ? ? 相當(dāng)于? df.count()
df.isnull().sum().sum()?? 全部的數(shù)據(jù)的空值數(shù)量
df.notnull()??? 輸出的也是布爾值,,和最上面的那個(gè)相反
dropping missing???? 丟掉缺失值
df.c4[df.c4.notnull()]? ? 選擇c4列的非空值? df.c4.dropna()?? 效果一樣 但原數(shù)組不改變,只復(fù)制一份值
df.dropna(how = 'all')? ? ? ? ? df.dropna(how='all', axis=1)??? 默認(rèn)是對(duì)行進(jìn)行操作
df2.dropna(how='any', axis=1)
df.dropna(thresh=5, axis=1)? 設(shè)定刪除的閾值? Na Ns don't count as an item in calculating
Filling in missing data?? 填充缺失值???????????????? 空值不再計(jì)算內(nèi)容的范圍里面
filled = df.fillna(0)???????? 用0填充所有缺失值
df.fillna(0, limit=2)???? 填充前面2個(gè)
df.c4.fillna(method="ffill")? 向前填充, 最后一個(gè)為空值
? pd.ffill() and pd.bfill() ? 和前面等價(jià)
fill_values = pd.Series([100, 101, 102], index=['a', 'e', 'g'])
df.c4.fillna(fill_values)??? 用標(biāo)簽填充
df.fillna(df.mean())?????????? 均值填充
s = pd.Series([1, np.nan, np.nan, np.nan, 2])
s.interpolate()? 線性插入支??????? 如(2.0 – 1.0)/(5-1) = 0.25
ts.interpolate(method="time")? ? s.interpolate(method="values")??? 也一樣
Handling duplicate data???????? 處理重復(fù)的數(shù)據(jù)
data.duplicated()?????????????????? 返回的是布爾值。是否是重復(fù)數(shù)據(jù)
data.drop_duplicates()????????? 留的是每行的第一個(gè)重復(fù)值
data.drop_duplicates(take_last=True)??? 留的是最后一個(gè)
data.drop_duplicates(['a', 'b'])?? 對(duì)特定的列篩選
Transforming Data???????? 數(shù)據(jù)轉(zhuǎn)換
x.map(y)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 映射? ? ? ? ??
s.replace(2, 5)????? 在Series中表示標(biāo)簽為2的值? 替換? 為5
s.replace({0: 10, 1: 100})??????? 用字典替換
df.replace({'a': 1, 'b': 8}, 100)?? 在DataFrame中,表示a中的1,b列中的8 替換為100
s = pd.Series(np.arange(0, 5))???? s.apply(lambda v: v * 2)
df.apply(lambda col: col.sum())??? 計(jì)算每列的和
df.apply(lambda row: row.sum(), axis=1)???? 同理 行
df['interim'] = df.apply(lambda r: r.a * r.b, axis=1)???? 新列 并創(chuàng)建值
df['result'] = df.apply(lambda r: r.interim + r.c, axis=1)
df.a = df.a + df.b + df.c? 不創(chuàng)建新列,在原列的基礎(chǔ)上增加數(shù)學(xué)操作運(yùn)算
df.dropna().apply(lambda x: x.sum(), axis=1)? 除空值外的行的和
??? use applymap to format all items of the Data Frame
df.applymap(lambda x: '%.2f' % x) ? 整個(gè)數(shù)據(jù)都轉(zhuǎn)化為保留2位小數(shù)的浮點(diǎn)數(shù) 對(duì)整體操作
Combining and Reshaping?? 合并與重組
pd.concat(objs, axis=0,join='outer', join_axes=None, ignore_index=False,? ? ? keys=None, levels=None, names=None, verify_integrity=False) 所有參數(shù)
pd.concat([df1, df2])?? 注意索引是源數(shù)列的? 沒有合并
c = pd.concat([df1, df2], keys=['df1', 'df2'])???? 指定屬于哪張表
pd.concat([df1, df2], axis=1)??? 縱向合并? axis指定軸向
pd.concat([df1, df3], axis=1)
pd.concat([df1, df3], axis=1, join='inner')?
Pivoting???? 視圖
加上join參數(shù)的屬性,如果為’inner’得到的是兩表的交集,如果是outer,得到的是兩表的并集。In[28]: pieces = {'x': df1,'y': df2,'z': df3}
In[29]: result = pd.concat(pieces)?? 傳入字典增加分組建
df1.append(df2, ignore_index=True)
sensor_readings[sensor_readings['axis'] == 'X']?? 只選擇一列的某值顯示


和透視的功能差不多,不過(guò)只是透視的一部分,stack表示把列變?yōu)樗饕?,另外一個(gè)相反
df = pd.Data Frame({'a': [1, 2]}, index={'one', 'two'})
stacked1 = df.stack()
Grouping and Aggregating? Data 這個(gè)知道有用,但還沒用過(guò)過(guò)
The split, apply, and combine (SAC)?? pattern ? 分,聚? 和
grouped = sensors.groupby('sensor')?? 返回一個(gè)DataFrame? 不返回值

grouped.size()? ? ? grouped.count()? ? grouped.get_group('accel')
mcg = sensors.groupby(['sensor', 'axis'])???? 兩列同時(shí)操作
print_groups(mcg)? ?????? mcg.describe() ?? 不同類別的描述
mig_l12.agg(np.mean)??? 求均值,分組后的
sensors.groupby(['sensor', 'axis'],as_index=False).agg(np.mean)
grouped.transform(lambda x: x + 10)
filled_Na Ns = grouped.transform(lambda x: x.fillna(x.mean()))

f = lambda x: x.Values.count() > 1
df.groupby('Label').filter(f) ?? 必須指定列
f = lambda x: x.Values.isnull().sum() == 0
df.groupby('Label').filter(f) ? 意思都懂的? 就是字面意思
f = lambda x: x.Values.count() > 1
df.groupby('Label').filter(f, dropna=False)
bins = pd.cut(dist, 5)??? 切分?jǐn)?shù)據(jù)
pd.cut(dist, 5, right=False).categories
ranges = [6, 12, 18, 35, 50]
agebins = pd.cut(ages, ranges)
agebins.describe()
qbin = pd.qcut(dist, 5)