pandas遇到的问题汇总
join()
Examples
1 | >>> df = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'], |
Join DataFrames using their indexes.
1 | >>> df.join(other, lsuffix='_caller', rsuffix='_other') |
如果不想以现有index为基础去Join,比如上面的例子想用key这个index去Join,可以:
1 | >> df.join(other.set_index('key'), on='key') |
merge()
1 | df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'], |
选择多列
有时候需要选择DataFrame中的多个列组成一个新的DataFrame,这时候要用
1 | df[['column1','column2']] # 注意这里是双层中括号! |
drop 满足条件的行
1 | df_clear = df.drop(df[df['x']<0.01].index) |
dropna 丢掉某一列中有空的行
1 | df.dropna(subset=['column_name']) |
apply,applymap,map
apply
官方解释是 apply a function along an axis of the dataframe.
apply内函数的是Series,也就是在Series上做函数操作。index可以是dataframe的index,也可以是dataframe的columns(axis=1)。axis=0时,apply the function to each column,也就是每一列为一个整体去实施函数。axis=1时,每一行作为一个整体去实施函数。
1 | df.apply(np.sum, axis=0) |
applymap
官方解释是 apply a function to a dataframe elementwise.和apply不一样的是对dataframe中每一个元素分别作函数。
applymap允许实施一个函数,这个函数接受和返回的都是一个标量。
1 | df.applymap(lambda x: len(str(x))) |
map
map调用的对象只能是Series,而上面两个方法的调用对象是Dataframe。