草庐IT

python - 将 DataFrame 与 Pandas 中的 Series 连接起来

有人能解释一下这个pandasconcat代码有什么问题吗?为什么数据框仍然是空的?我使用的是anaconda发行版,据我所知它以前是有效的。 最佳答案 您想使用这种形式:result=pd.concat([dataframe,series],axis=1)pd.concat(...)不会发生在原始dataframe中,但它会返回串联结果,因此您需要在某处分配串联,例如:>>>importpandasaspd>>>s=pd.Series([1,2,3])>>>df=pd.DataFrame()>>>df=pd.concat([df,

python - 当在另一个系列的切片中使用值时如何通过 pandas 系列矢量化循环

假设我有两个系列的时间戳,它们是不同5小时范围的开始/结束时间对。它们不一定是连续的,也没有量化到小时。importpandasaspdstart=pd.Series(pd.date_range('20190412',freq='H',periods=25))#Dropafewindexestomaketheseriesnotsequentialstart.drop([4,5,10,14]).reset_index(drop=True,inplace=True)#Addsomerandomminutestothestartasit'snotnecessarilyquantizedsta

python - 在 Pandas 数据系列中使用 fill_between()

我绘制了(使用matplotlib)时间序列及其相关的置信区间上限和下限(我在Stata中计算)。我使用Pandas读取stata.csv输出文件,因此该系列的类型为pandas.core.series.Series。Matplotlib允许我在同一个图上绘制这三个系列,但我希望在置信上限和置信下限之间添加阴影以生成视觉置信区间。不幸的是我得到一个错误,并且阴影不起作用。我认为这是因为我希望填充的函数是pandas.core.series.Series。此处的另一篇文章建议传递my_series.value而不是my_series将解决此问题;但是我无法让它工作。我真的很感激一个例子。

python - Pandas 中时间增量的字符串格式

我注意到Pandas知道如何巧妙地将timedelta对象格式化为字符串。In[1]:df[column][rows].max()Out[1]:02days,02:08:07dtype:timedelta64[ns]当我尝试手动执行此操作时,我总是以纳秒为单位获取字符串。In[2]:df[column][rows].max()[0]Out[2]:numpy.timedelta64(180487000000000,'ns')In[2]:str(df[column][rows].max()[0])Out[2]:'180487000000000nanoseconds'我不想重新发明轮子,所以

python - 区分具有多列的 Pandas 数据框

我有一个包含两列的Pandas数据框:ddf.head()ab03136132801307213312231521329633120132484312013200我想计算同一列中连续元素之间的差异。现在,如果我一次为一列执行此操作(ddf['a'].diff()),它会按我预期的那样工作,但如果我尝试ddf.diff()它给出:---------------------------------------------------------------------------ValueErrorTraceback(mostrecentcalllast)in()---->1ddf.dif

python - 将行添加到 pandas DataFrame 更改 dtype

我遇到的问题是向DataFrame添加一行会更改列的数据类型:>>>frompandasimportDataFrame>>>df=DataFrame({'a':range(10)},dtype='i4')>>>dfa00112233445566778899[10rowsx1columns]我特别指定dtype为int32(即'i4'),可以看出:>>>df.dtypesaint32dtype:object但是,添加一行会将dtype更改为float64:>>>df.loc[10]=99>>>dfa001122334455667788991099[11rowsx1columns]>>>d

python - Pytables/Pandas : Combining (reading? ) 多个 HDF5 存储按行拆分

在“一次写入,多次读取”工作流程中,我经常使用FastExport实用程序解析从Teradata转储的大型文本文件(20GB-60GB),并使用Pandas将它们加载到Pytables中。我正在使用multiprocessing对文本文件进行分block并将它们分发到不同的进程以编写一个.H5文件,该文件根据行数拆分,每个文件大约5MM,以支持并行写入。与写入25MM行x64列的单个hdf5文件的两个22分钟相比,并行写入多个hdf5文件大约需要12分钟。%timeit-n1write_single_hdf_multiprocess()1loops,bestof3:22min42spe

python - Matplotlib,使用带有 pandas 时间序列数据的 plt.text() 设置绘图内文本

Matplotlib允许使用matplotlib.axes.Axes.text()自行在绘图中设置文本。我正在绘制Pandas系列数据,所以x轴是日期。Datetime2014-11-083452014-11-096782014-11-109872014-11-11258Freq:W-SUN,dtype:int64如果我想添加文本添加位置(x,y)=(2014-11-08,345),我该怎么做?2014-11-08实际上不是x轴上的x值。我怎样才能找到这个位置? 最佳答案 有几个选项。您可以使用来自Series对象的索引、date或

python Pandas : Merge two tables without keys (Multiply 2 dataframes with broadcasting all elements; NxN dataframe)

我想合并2个具有广播关系的数据帧:没有公共(public)索引,只想找到2个数据框中的所有行对。所以想要制作N行数据框xM行数据框=N*M行数据框。是否有任何规则可以在不使用itertool的情况下实现这一点?DF1=idquantity01201223DF2=namepart0'A'31'B'42'C'5DF_merged=idquantitynamepart0120'A'31120'B'42120'C'53223'A'34223'B'45223'C'5 最佳答案 您可以在DataFrames和merge中使用辅助列tmp填充1在

python - Pandas 查表

我有一个看起来像这样的pandas查找表GradeLower_BoundaryUpper_Boundary1-110-962-96-913-91-854-85-815-81-776-77-727-72-688-68-639-63-5810-58-5411-54-5012-50-4613-46-4214-42-3815-38-3416-34-2817-28-1818-18-1119-11-1120-11-9我有另一个看起来包含分数的pandas数据框。我想通过查找查找表将“等级”分配给分数列。因此,根据分数落在下边界和上边界的哪个区间,应该从查找表中的那一行分配等级。有没有办法不用输入一