草庐IT

DATAFRAME

全部标签

【pandas小技巧】--花哨的DataFrame

最近github上发现了一个库(plottable),可以用简单的方式就设置出花哨的DataFrame样式。github上的地址:https://github.com/znstrider/plottable1.安装通过pip安装:pipinstallplottable2.行的颜色使用plottable的API,调整背景和字体的颜色非常方便。2.1.奇偶行不同颜色奇偶行设置不同的颜色,让表格看起来有层次感。importnumpyasnpfromplottableimportTabledata=np.random.random((5,5))data=data.round(2)df=pd.DataF

python - Pandas Dataframe 分成 session

这是我的question的扩展.为了让它更简单让我们假设我有一个pandas数据框,如下所示。df=pd.DataFrame([[1.1,1.1,2.5,2.6,2.5,3.4,2.6,2.6,3.4],list('AAABBBBAB'),[1.1,1.7,2.5,2.6,3.3,3.8,4.0,4.2,4.3]]).Tdf.columns=['col1','col2','col3']数据框:col1col2col301.1A1.111.1A1.722.5A2.532.6B2.642.5B3.353.4B3.862.6B472.6A4.283.4B4.3我想根据某些条件对其进行分组。逻

python - 基于从 Pandas DataFrame 中其他 2 列的值进行条件选择的新列

我有一个包含股票值(value)的DataFrame。看起来像这样:>>>DataOpenHighLowCloseVolumeAdjCloseDate2013-07-0876.9177.8176.8577.04510620077.04当我尝试使用以下if语句创建条件新列时:Data['Test']=Data['Close']ifData['Close']>Data['Open']elseData['Open']我收到以下错误:Traceback(mostrecentcalllast):File"",line1,inData[1]['Test']=Data[1]['Close']ifDa

python - 重新索引 Pandas 数据框多索引的子级别

我有一个时间序列数据框,我想通过试验和测量重新索引它。简化,我有这个:valueTrial1013132423NaN4123534我想把它变成这样:valueTrial1013132420NaN1123034我怎样才能最好地做到这一点? 最佳答案 就在昨天,杰出的安迪·海登(AndyHayden)将此功能添加到pandas0.13版本中,该版本随时都会发布。参见here对于他添加到文档中的用法示例。如果您愿意从源代码安装pandas的开发版本,您现在就可以使用它。df['Measurements']=df.reset_index()

python - 链接分组、过滤和聚合

DataFrameGroupby.filter方法过滤组,并返回包含通过过滤器的行的DataFrame。但是过滤后如何获取新的DataFrameGroupBy对象而不是DataFrame?例如,假设我有一个DataFramedf,其中包含两列A和B。我想为A列的每个值获取B列的平均值,只要该组中至少有5行:#pandas0.18.0#doesn'tworkbecause`filter`returnsaDFnotaGroupByobjectdf.groupby('A').filter(lambdax:len(x)>=5).mean()#worksbutslowerandawkwardto

python - Pandas :如何将行中的一列旋转成列

这个问题在这里已经有了答案:HowcanIpivotadataframe?(5个答案)关闭13天前。给定这个数据框:featurescoresearchTerm0a0.534509pizza1b0.586020pizza2c0.588972pizza3a0.566261chinese4b0.572405chinese5c0.489369chinese6a0.499068thai7b0.431068thai8c0.441617thai特征仅限于(a,b,c)我想将数据框转换为:abcsearchTerm0.5345090.5860200.588972pizza0.5662610.5724

python - Pandas : Delete rows based on other rows

我有一个看起来像这样的Pandas数据框:qseqidsseqidqstartqend21125345411503203215045062253008250500我想根据具有这些条件的其他行值删除行:如果另一行(r2)存在相同的sseqid,则必须删除行(r1)和r1[qstart]>r2[qstart]和r1[qend].这对Pandas来说可能吗? 最佳答案 df=pd.DataFrame({'qend':[345,320,450,300,500],'qseqid':[2,4,3,6,8],'qstart':[125,150,1

python - pandas 如何使用 groupby 在标签中按日期对列进行分组?

我有一个数据框10730行×249列,我有列:Index(['RegionID','Metro','CountyName','SizeRank','1996-04','1996-05','1996-06','1996-07','1996-08','1996-09',...'2015-11','2015-12','2016-01','2016-02','2016-03','2016-04','2016-05','2016-06','2016-07','2016-08'],dtype='object',length=249)所以我需要做的是按季度对列进行分组,从1月到3月Q1,依此类推,直

python - 使用 Pandas 读取数据(.dat 文件)

如何使用Pandas读取以下(两列)数据(来自.dat文件)TIMEXGSM2004006010001376001200400601000232800520040060100032800082004006010004232001120040060100051840017列分隔符(至少)是2个空格。我试过了df=pd.read_table("test.dat",sep="\s+",usecols=['TIME','XGSM'])printdf但是它会打印TIMEXGSM2004620046200462004620046 最佳答案 您可

python - 通过将 x 添加到前一行 pandas 来填充 na 值

我有一个数据框,其中包含名为SAM的列以及以下数据SAM359NanNan2440Nan57现在我想在Nan值中分别插入12、15和43(因为9+3=12、12+3=15和40+3=43)。换句话说,通过将3添加到上一行(也可以是Nan)来填充任何Nan行。我知道这可以通过遍历for循环来完成。但是我们可以用向量化的方式来做吗?就像pandas.fillna()中ffill的一些修改版本(如果我们没有连续的NaN就可以在这里使用)。 最佳答案 您可以尝试这种矢量化方法:nul=df['SAM'].isnull()nul.groupb