当前位置: 首页 > 后端技术 > Python

PandasDataFrame使用总结

时间:2023-03-26 18:02:45 Python

Pandas是一个非常好用的库。下面总结一下PandasDataFrame的常用用法,使用时可以快速找到。PandasDataFrame是二维数据结构,带有标记的行和列,可以存储多种类型的数据。如果您熟悉Excel,请将PandasDataFrames视为类似于电子表格。1.importimportnumpyasnpiimportpandasaspd2.Createdata=np.array([[1,2,3],[4,5,6],[7,8,9]])c=['a','b','c']r=['A','B','C']df=pd.DataFrame(data=data,columns=c,index=r)3.按列排序和行名排序#行名降序排序df.sort_index(axis=0,ascending=False)#列名降序排序df.sort_index(axis=0,ascending=False)按值排序df[取出并排序"a"].sort_values(ascending=False)在df中排序df.sort_values(['a','b','c'])4.索引位置索引df.iloc[2]#选择第二个中的所有数据行,这是系列类型df。iloc[[2]]#选择第二行的所有数据,为DataFrame类型df.iloc[:,2]#选择第二列的所有数据,为Series类型df.iloc[:,[2]]#选择第二列的所有数据都是Da??taFrame类型df.iloc[:,0:2]#选择0到2列的所有数据df.iloc[[2,3],0:2]#Select2and3rows,0to2columnsAlldatadf.iat[1,1]#根据位置快速检索数据,建议获取单条数据。自定义索引推荐使用该方法df.loc['top']#选择指定行数据,为Series类型df.loc[['top']]#选择指定行数据,为DataFrame类型df.loc[:,'xm']#选择指定列数据,为Series类型(不推荐)df.loc[:,['xm']]#选择指定列数据,为DataFrame类型(不推荐)df.loc[:,['bj','xm']]#选择多列数据(不推荐)df.loc[:,'bj':'xb']#选择多列之间的所有数据,列分片即可只用这个方法df.loc[['top','count'],'bj':'xb']#选择指定行,指定列数据df.at['top','xm']#快速根据自定义索引获取数据,获取单条数据推荐使用此方法布尔索引#选取出生日期大于等于1998的所有数据,这里是字符串比较df[df['csrq']>='1998']#选择出生日期大于等于1997的所有数据Datadf[(df['csrq']>='1997')&(data['csrq']<'1999')]#选择所有出生日期为df的数据date大于等于1997小于1999[df['csrq'].between('1997','1999')]#选择所有数据df[(df['csrq']>='1997')出生日期大于等于1997或姓名为张三|(data['xm']=='张三')]#另一种选择方式(不推荐,实测效率低于上述)df[df.csrq>='1998']#选择字段值指定内容数据df[df['xm'].isin(['张三','李四'])]5.插入和deletion#假设原来cj列是不存在的,这会在列的末尾添加一个新的列cj,值为s(Series对象),原地df['cj']=s#插入一个第一列位置的columndz(address),值为s,原地df.insert(0,'dz',s)#添加新列(addcolumn),内容为df2(必须是DataFrame对象)indf,non-in-placedf.join(df2)#将df2中的行添加到df的末尾(addrows),non-in-placedf.append(df2)#删除单个列,并返回deletedcolumn,in-placedf.pop('xm')#删除指定行,non-in-placedf.drop(1)#删除指定列,axis=1指的是第二个维度,axis默认为0,non-in-placedf.drop(['xm','xh'],axis=1)6.DataFrame重要方法和属性'''重要属性'''df.values#查看所有元素valuedf。dtypes#查看所有元素的类型df.index#查看所有行名df.index=['Total','Different','Most','Frequency']#重命名行名df.columns#查看所有列名Namedf.columns=['Class','Name','Gender','DateofBirth']#重命名列名df.T#转置df,非原地'''查看数据'''df.head(n)#查看df的前n条数据,默认5条df.tail(n)#查看df的后n条数据,默认5条df.shape()#查看行数和列数df.info()#查看索引、数据类型和内存信息'''数据统计'''df.describe()#查看数据值列的汇总统计,为DataFrame类型df.count()#返回非空的个数valuesineachcolumndf.sum()#返回每一列的总和,不能计算返回空,同下df.sum(numeric_only=True)#numeric_only=True表示只统计数字元素,同df.max()#返回每列的最大值df.min()#返回每列的最小值df.argmax()#返回最大值为的自动索引位置df.argmin()#返回最小值所在的自动索引位置df.idxmax()#返回最大值所在的自定义索引位置df.idxmin()#返回自定义索引位置w这里找到最小值df.mean()#返回每列的均值df.median()#返回每列的中位数df.var()#返回每列的方差df.std()#返回每一列的标准差df.isnull()#检查df空值,NaN为True,否则为False,返回一个布尔数组df.notnull()#检查df空值,如果不是NaN则为True,否则为False,返回一个布尔数组7.转换为Numpydf.valuesnp.array(df)8.实际应用获取交易对BTC/USDT最近10天的收盘标准差#计算标准差since_days=10test_symbol='BTC/USDT'#计算时间点threeDayAgo=(datetime.datetime.now()-datetime.timedelta(days=since_days))SinceTimeStamp=int(time.mktime(threeDayAgo.timetuple()))*1000#转换为时间戳,*1000,转换为毫秒时间戳13位tickers_list=binance_exchange.fetch_ohlcv(test_symbol,timeframe='1d',since=SinceTimeStamp)#print(len(tickers_list))#print(tickers_list)kline_data=pd.DataFrame(tickers_list)kline_data.columns=['Datetime','Open','High','Low','Close','Vol']print(kline_data)print("描述:\n“,kline_data.describe())std=kline_data['close']。15903648000008718.148979.668642.728900.3562833.910949315904512000008900.359017.678700.008841.1858299.7701384159053760000010000008923.988923.9204.0768910.355514515906240000009204.079625.479110.009575.8974110.787662615907104000009575.879605.269330.009427.0757374.362961715907968000009426.609740.009331.239697.7255665.272540815908832000009697.729700.009381.419448.2748333.786403915909696000009448.279619.009421.679542.4715797.593487describe:DatetimeOpenHighLowClose\count1.000000e+0110.00000010.00000010.00000010.000000mean1.590581e+129216.1030009411.7910009049.8760009253.651000std2.615890e+08325.168891282.355505312.180668339.899591min1.590192e+128718.1400008979.6600008642.7200008720.34000025%1.590386e+128967.7625009243.2500008727.9325008970.05000050%1.590581e+129191.5400009456.5550009090.0000009315.57000075%1.590775e+129442.8525009623.8525009330.9225009518.920000最大1.590970e+129697.7200009740.0000009421.6700009697.720000Volcount10.000000mean55523.200307std16943.615232min15797.59348725%50166.65793750%57837.06654975%67391.244373max74110.787662标准差:339.8995912341039相关文章:PandasDataFrame总结PythonPandasDataFrame创建(二十)PythonPandasDataFrame元素Visit(21)