草庐IT

pivot_df

全部标签

python - 如何将具有日期时间索引的 df 重新采样到恰好 n 个大小相等的周期?

我有一个带有日期时间索引的大型数据框,需要将数据重新采样到恰好10个大小相等的周期。到目前为止,我已经尝试找到第一个和最后一个日期以确定数据中的总天数,将其除以10以确定每个期间的大小,然后使用该天数重新采样。例如:first=df.reset_index().timesubmit.min()last=df.reset_index().timesubmit.max()periodsize=str((last-first).days/10)+'D'df.resample(periodsize,how='sum')这并不能保证重采样后df中恰好有10个周期,因为周期大小是一个向下舍入的整数

python - Pandas :df.mul 与 df.rmul

谁能帮我理解这两种方法之间的区别(如果有的话):df.mul和df.rmul?文档看起来相同:docsformuldocsforrmul 最佳答案 文档不完全相同。如文档中所述,df.mul(other)等同于df*other,而df.rmul(other)等同于其他*df.这在大多数情况下可能无关紧要,但如果您有一个对象dtype的数据框,其元素具有非交换乘法,这将很重要。也许你写了一个四元数类并用四元数填充了一个数据框。拥有更多Pandas经验的人可能会提出更重要的实际案例。 关于p

python - df.loc 导致 SettingWithCopyWarning 警告消息

我的以下代码行会引发警告:importpandasaspds=pd.DataFrame(np.random.randint(0,100,size=(100,4)),columns=list('ABCD'))s.loc[-1]=[5,np.nan,np.nan,6]grouped=s.groupby(['A'])forkey_m,group_mingrouped:group_m.loc[-1]=[10,np.nan,np.nan,10]C:\Anaconda3\lib\site-packages\ipykernel\__main__.py:10:SettingWithCopyWarnin

python - 如何在 Pandas 中合并 "(df1 & not df2)"数据帧?

我有2个pandas数据帧df1和df2,它们具有公共(public)列/键(x,y)。我想合并对键(x,y)进行“(df1&notdf2)”类型的合并,这意味着我希望我的代码返回一个数据框,其中包含仅在df1而不是(x,y)中的行在df2中。SAS具有等效的功能datafinal;mergedf1(in=a)df2(in=b);byxy;ifa¬b;run;谁能优雅地在pandas中复制相同的功能?如果我们能在merge()中指定how="left-right"就好了。 最佳答案 我刚刚升级到10天前发布的0.17.0RC1

python - pivot_table 没有要聚合的数字类型

我想根据以下数据框制作一个数据透视表,其中包含列sales、rep。数据透视表显示sales但没有rep。当我尝试仅使用rep时,出现错误DataError:Nonumerictypestoaggregate。如何解决此问题,以便我同时看到数字字段sales和字段(字符串)repdata={'year':['2016','2016','2015','2014','2013'],'country':['uk','usa','fr','fr','uk'],'sales':[10,21,20,10,12],'rep':['john','john','claire','kyle','kyle'

python - Pandas df 的流数据

我正在尝试模拟使用pandas来访问不断变化的文件。我有一个文件读取一个csv文件,向其中添加一行,然后随机休眠一段时间以模拟批量输入。importpandasaspdfromtimeimportsleepimportrandomdf2=pd.DataFrame(data=[['test','trial']],index=None)whileTrue:df=pd.read_csv('data.csv',header=None)df.append(df2)df.to_csv('data.csv',index=False)sleep(random.uniform(0.025,0.3))第二

python - Pandas :将数据框附加到另一个 df

我在附加数据框时遇到问题。我尝试执行这段代码df_all=pd.read_csv('data.csv',error_bad_lines=False,chunksize=1000000)urls=pd.read_excel('url_june.xlsx')substr=urls.url.values.tolist()df_res=pd.DataFrame()fordfindf_all:foriinsubstr:res=df[df['url'].str.contains(i)]df_res.append(res)当我尝试保存df_res时,我得到空数据框。df_all看起来像ID,"url

python - Pandas TimeGrouper 和 Pivot?

这是我的数据框的样子:TimestampCAT02016-12-0223:35:2820012016-12-0223:37:4320022016-12-0223:40:4930032016-12-0223:58:5340042016-12-0223:59:02300...这就是我在Pandas中尝试做的事情(注意时间戳是分组的):TimestampBINS2003004005002016-12-0223:3020002016-12-0223:4001002016-12-0223:500110...我正在尝试创建10分钟时间间隔的bin,以便制作条形图。并将列作为CAT值,这样我就可以计

python - Pandas ,将系列连接到 DF 作为行

我试图将一个系列添加到一个空的DataFrame中,但找不到答案在文档或其他问题中。因为您可以按行附加两个DataFrame或者按列看来系列中必须缺少一个“轴标记”。能谁能解释为什么这不起作用?importPandasaspddf1=pd.DataFrame()s1=pd.Series(['a',5,6])df1=pd.concat([df1,s1],axis=1)#gorunsomeprocessreturns2,s3,sn...s2=pd.Series(['b',8,9])df1=pd.concat([df1,s2],axis=1)s3=pd.Series(['c',10,11])

python - PANDAS 从 df 删除一系列行

我想从数据框的底部删除m行。它是整数索引(有孔)。如何才能做到这一点?Pandas==0.10.1python==2.7.3 最佳答案 使用切片选择你想要的部分:df[:-m]如果你想删除一些中间行,你可以使用drop:df.drop(df.index[3:5]) 关于python-PANDAS从df删除一系列行,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15703283/