一、series
s.value
s.index
s.reindex(index=,fill_value=)
s.reindex(index=,method='ffill'/'bfill'/'pad')
pd.isnull(s)
二、dataframe
2.1 基本信息
df.coulmns
df.values
df.info()
df.dtypes()
2.2 索引
df.A(A为df的某个列的名字)=df['A']
df[: 'a'] 当使用非整数作为切片索引时,包含a行
df.iloc[[1,4,5],[0,3]]#iloc通过index号码进行索引
df.loc[['a','e'],['A','C']]#loc通过标签名字进行索引
df.ix[3:6,['name','score']#ix接受两套切片
df.iloc[0]---代表选第一行
df.iloc[0][0]--代表选第一行第一列
df[(df.score>80) & (df.score<90)] # 选出满足条件的《行》
df[['Name','Score']][(df.score>80) & (df.score<90)] # 先选出2列,再选出满足条件的行
注意:注意df.A和df.iloc/df.loc标准不一样
df.A专注取列;df.iloc/df.loc默认取行,当然加上2个维度也可以取列;布尔索引的结果是满足条件的行
data_bank.loc[data_bank['label'] == '基金市场'] = '基金要闻'
根据某列满足的条件,取出行,然后赋值
2.3 更改数据
s.reindex(index=)、s.reindex(columns=)
s.rename(columns={'scoe':'scores'},inplace=True) 将scoe改名,注意加上inplace
替换指定数据(有索引有数据)
f = pd.Series([97,96,83],index=[1,2,3])
df['homeage']=f
del df['homeage'] 删除此列=df.drop('homeage',axis=1,inplace=True)
2.4排序/排名
df.sort_index(by='Score',ascending=False)
df['score'].rank(method='first/average..')
2.5函数
apply:操作对象是df的一行或一列
applymap:作用于df的每个数据
map:对series每个数据调用,元素级
可是我觉得apply就能满足需求啊。。。
df_use['cut_nostop'] = df_use['cutword'].apply(lambda x : str(x).split(' ')) # str换成list
当然没有pandas这种结构时,只是list,就用py自带的map函数就好
def makedict(a):
b = dict(a)
for key,value in b.items():
if value == max(b.values()):
max_key = key
return max_key
finalmax_key = map(makedict, doc_lda)
finalmax_key = list(finalmax_key)
2.6拼接
pd.concat([c1,c2],axis=0/1)
pd.merge(c1,c3,on='name')按照name匹配连接类似sql的join