pandas、numpy功能整理,包括机器学习的部分库

时间:2022-07-25
本文章向大家介绍pandas、numpy功能整理,包括机器学习的部分库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Pandas:

删除:1按列名

dfarr1=dfarr.drop(dfarr[dfarr.pointxy=='长泰县长泰一中'].index)

删除dfarr.pointxy字段=='长泰县长泰一中'的值

删除的时候也可以这么写:

dfarr1=dfarr.drop(dfarr[dfarr['pointxy']=='长泰县长泰一中'].index)

2 按列序号

nmovetif=movetif.drop(movetif[movetif.iloc[:,0]==0].index)

删除列

test_dict_df.drop(['id'],axis=1)

批量删除

ak3.drop(ak3.columns[22:], axis=1, inplace=True)

ak3.drop(ak3.columns[[0,2,3,5,6]], axis=1, inplace=True)

同时:

a.drop(a[(a['a']==b['a'][0]) & (a['b']==b['b'][0])].index)
t3.columns=['k']#命名列的名字
t1=t1.rename(columns={'风速(m/s)':'fs'})#修改名字

调换列的顺序

a=pd.Dataframe(plarr)
b=['pm','lon','lat','qy','wd','sd','fs','t7','t8','t9','t10','t11','t12','t13','t14','t15','t16','t17','t18','t19','t20','t21','t22','t23','t24','t25']
a=a[b]
#按行求和
df['row_sum'] = df.apply(lambda x: x.sum(), axis=1)


#按列求和
df.loc['col_sum'] = df.apply(lambda x: x.sum())

pandas 合并

取数据框中部分数据合并

df1=pd.DataFrame({'a1':[1,2,3],'a2':[4,5,6]})
df2=pd.DataFrame({'a1':[7,2,3],'a2':[4,5,7]})
df3=pd.concat([df1,df2['a2']],axis=1)

merge方法:左连接、右连接,是不是和数据库的合并(join)相似

applymap()

eval()

列提取,第一列

ak2.loc[:,['Site_Latitude(Degrees)','Site_Longitude(Degrees)']]

也可以这么写,用列的名字指代列的顺序

df.iloc[i,j]###按位置取数据

按列名提取数据

a['Time(hh:mm:ss)'],其中引号内的信息可以自动填补

重新排列索引

df1.reset_index(drop=True, inplace=True)

选取特定行

temp=aodnet[aodnet['AERONET_Site_Name'].isin(['Beijing'])]
temp=aodnet[aodnet.AERONET_Site_Name=='Beijing']

示例

有一个pd数组,两列数据,一个标签一个数值,希望标签大于2的数值变为3

已有DataFrame(long),现在想新建一个DataFrame(tCG),但是保有原来a的索引:

long=ac['Site_Longitude(Degrees)']##其中long为Series
tCG=pd.DataFrame(np.ones(len(long)),columns=['tCG'],index=long.index)
long=pd.DataFrame(long)

提取某些列,而不是靠删除

t=tempa1.iloc[np.array(tempa1[tempa1['Day_of_Year']==1].index)]

按条件多选

去重

a=alldataday.drop_duplicates(['lat','lon','doy','mod'], keep='last')

原来500+条,现在400+

['lat','lon','doy','mod']代表4列数据,last 代表保存后面那个

想要从一个数组中删除另一个数组,两个办法,一个是减法,一个是加法

上面是加法,下面是减法

Pandas groupy分组计算

a1=dfarr[dfarr.pm25!=999999]

group=a1.groupby([a1['xian'],a1['quarter']])
b=group.mean()
b.to_csv('D:/minxinan/temp/pm.csv',encoding='gbk')

时间戳

c=pd.to_datetime(b['Date(dd:mm:yyyy)'],format='%d:%m:%Y')
d=c.dt.year
合并到b中
如果是不知道怎么把数据转化成标准的时分秒格式,如:
ab=pd.to_datetime(a['Time(hh:mm:ss)'],format='%H:%M:%S')

Numpy:

ps 作者这段时间心情很糟糕,numpy就不想写了