我有数百个时间序列对象,每个对象都有100000个条目。某些百分比的数据条目丢失(NaN)。无论是单个、分散的NaN还是长序列的NaN,对我的应用程序都很重要。因此我想要一个函数来为我提供每个连续的NaN序列的游程长度。我能行myseries.isnull()得到一系列bool值。我可以通过移动中位数或移动平均线来了解数据漏洞的大小。但是,如果有一种有效的方法来获取系列的孔长度列表,那就太好了。也就是说,如果有一个myfunc就好了a=pdSeries([1,2,3,np.nan,4,np.nan,np.nan,np.nan,5,np.nan,np.nan])myfunc(a.isnu
我有一个由元组索引的pandas系列,如下所示:frompandasimportSeriess=Series({(0,0):1,(0,1):2,(0,3):3,(1,0):1,(1,2):4,(3,0):5})我想通过使用也是元组的索引(使用字典顺序)对这样的系列进行切片,但不一定在索引中。当我传递系列中的索引时,切片似乎起作用了:s[:(1,0)](0,0)1(0,1)2(0,3)3(1,0)1dtype:int64但如果我尝试按不在系列中的索引进行切片,则会出现错误:s[:(1,1)]...ValueError:Index(...)mustbecalledwithacollecti
我们有一个如下所示的DataFrame:>df.ix[:2,:10]0123456789100NaNNaNNaNNaN65NaNNaN4NaN51NaNNaNNaNNaN8NaNNaN7NaNNaN52NaNNaNNaNNaNNaN1NaNNaNNaNNaNNaN我们只需要DataFrame中所有唯一值的计数。一个简单的解决方案是:df.stack().value_counts()但是:1.看起来stack返回一个副本,而不是一个View,这在这种情况下是内存限制的。这个对吗?2.我想按行对DataFrame进行分组,然后为每个分组获取不同的直方图。如果我们忽略stack的内存问题并暂
我有一个包含我的数据的大型数据框,以及另一个具有相同第一维度的数据框,其中包含有关每个时间点的元数据(例如,它是什么试验编号,它是什么试验类型)。我想要做的是使用“元数据帧”的值对大型数据帧进行切片。我想将它们分开(而不是将元数据帧存储为较大的多索引)。现在,我正在尝试做这样的事情:defmy_func(container):container.big_df.set_index(container.meta_df[['col1','col2']])container.big_df.loc['col1val','col2val'].plot()但是,这会返回以下错误:ValueError
在Pandas0.17中,我尝试按特定列排序,同时保持层次索引(A和B)。B是通过串联设置数据帧时创建的运行编号。我的数据如下所示:CDABbaroneshiny10twodull5threeglossy8fooonedull3twoshiny9threematt12这是我需要的:CDABbartwodull5threeglossy8oneshiny10fooonedull3threematt12twoshiny9下面是我使用的代码和结果。注意:Pandas0.17警告dataframe.sort将被弃用。df.sort_values(by="C",ascending=True)CDA
我有一个pandas.DataFrame对象,其中包含大约100列和200000行数据。我正在尝试将其转换为bool数据框,其中True表示该值大于阈值,False表示它小于阈值,并且保留NaN值。如果没有NaN值,我需要大约60毫秒才能运行:df>=threshold但是当我尝试处理NaN时,下面的方法有效,但速度很慢(20秒)。deffunc(x):ifx>=threshold:returnTrueelifx有没有更快的方法? 最佳答案 你可以这样做:new_df=df>=thresholdnew_df[df.isnull()]
我有一个包含六个月错误日志的数据框,每天收集。我想从最后一个日期检索最近30天的记录。最后一天不是今天。例如:我有从5月、6月、7月到8月15日的数据,我想检索从8月15日到7月15日制作30天记录。有没有办法在PythonPandas中做到这一点?这是示例数据框:Error_DescriptionDateWeekendTypeN17739LimitswitchX-5/1/20155/3/2015CriticalN17739LimitswitchY-5/1/20155/3/2015CriticalN938Keynon-functional5/1/20155/3/2015Non-Crit
我有一个包含时间序列数据的Pandas数据框。我目前正在操纵这个数据框来创建一个新的、更小的数据框,它是每10行的滚动平均值。即滚动窗口技术。像这样:defcreate_new_df(df):features=[]x=df['X'].astype(float)i=x.index.valuestime_sequence=[i]*10idx=np.array(time_sequence).T.flatten()[:len(x)]x=x.groupby(idx).mean()x.name='X'features.append(x)new_df=pd.concat(features,axis=
我正在使用pandas(v0.18.1)从名为“test.csv”的文件中导入以下数据:a,b,c,d1,1,1,1.0我已将“c”和“d”列的dtype设置为“decimal.Decimal”,但它们返回为“str”类型。importpandasaspdimportdecimalasDdf=pd.read_csv('test.csv',dtype={'a':int,'b':float,'c':D.Decimal,'d':D.Decimal})fori,vindf.iterrows():print(type(v.a),type(v.b),type(v.c),type(v.d))结果:`
我有一个2DNumpy数组,我想将其放入pandas系列(而不是DataFrame)中:>>>importpandasaspd>>>importnumpyasnp>>>a=np.zeros((5,2))>>>aarray([[0.,0.],[0.,0.],[0.,0.],[0.,0.],[0.,0.]])但这会引发错误:>>>s=pd.Series(a)Traceback(mostrecentcalllast):File"",line1,inFile"/miniconda/envs/pyspark/lib/python3.4/site-packages/pandas/core/seri