草庐IT

pyhton_Pandas

全部标签

python Pandas : remove everything after a delimiter in a string

我有数据框,其中包含例如:"vendora::ProductA""vendorb::ProductA""vendora::Productb"我需要删除所有内容(包括)这两个::以便我最终得到:"vendora""vendorb""vendora"我尝试了str.trim(似乎不存在)和str.split,但没有成功。完成此任务的最简单方法是什么? 最佳答案 您可以像正常使用split一样使用pandas.Series.str.split。只需拆分字符串'::',并索引从split方法创建的列表:>>>df=pd.DataFrame(

python - Pandas DataFrame 将多个列值堆叠到单个列中

假设以下DataFrame:key.0key.1key.2topic1abcdefghi82xabxcdxef9如何将所有key.*列的值组合成一个“key”列,该列与对应于key.*列的主题值相关联?这是我想要的结果:topickey18abc28def38ghi49xab59xcd69xef请注意,key.N列的数量在某些外部N上是可变的。 最佳答案 你可以融化你的数据框:>>>keys=[cforcindfifc.startswith('key.')]>>>pd.melt(df,id_vars='topic',value_va

python - Pandas - 根据索引替换值

如果我像这样创建一个数据框:importpandasaspd,numpyasnpdf=pd.DataFrame(np.random.randint(0,100,size=(100,2)),columns=list('AB'))例如,如何将A列中的条目更改为第0-15行中的数字16?换句话说,如何完全根据索引替换单元格? 最佳答案 使用loc:df.loc[0:15,'A']=16print(df)AB0164511652169731658416265168761651716178163991673101694111669121657

python - 具有分级范围的 Pandas 条形图

有没有办法根据分箱到预定义区间的连续数据创建条形图?例如,In[1]:dfOut[1]:00.72963010.69962020.71052630.00000040.83132550.94531260.66542870.87184580.84814890.262500100.694030110.503759120.985437130.576271140.819742150.957627160.814394170.944649180.911111190.113333200.585821210.930131220.347222230.000000240.987805250.95057026

python - 从 Python (pandas) 的日期列中获取周开始日期(星期一)?

我看过很多关于如何使用日期字符串进行操作的帖子,但我正在为数据框列尝试一些操作,但到目前为止还没有成功。我目前的方法是:从“myday”获取工作日,然后偏移以获得星期一。df['myday']iscolumnofdates.mydays=pd.DatetimeIndex(df['myday']).weekdaydf['week_start']=pd.DatetimeIndex(df['myday'])-pd.DateOffset(days=mydays)但是我明白了类型错误:timedeltadays组件不支持的类型:numpy.ndarray如何从df列中获取周开始日期?

python - 在 pandas timedelta 列上拆分应用组合

我有一个带有timedeltas列的DataFrame(实际上经过检查dtype是timedelta64[ns]或),我想做一个拆分-组合-应用,但是timedelta列被删除了:importpandasaspdimportnumpyasnppd.__version__Out[3]:'0.13.0rc1'np.__version__Out[4]:'1.8.0'data=pd.DataFrame(np.random.rand(10,3),columns=['f1','f2','td'])data['td']*=10000000data['td']=pd.Series(data['td']

python - Pandas 的性能问题和日期时间列的过滤

我有一个pandas数据框,其中一列上有一个datetime64对象。timevolumecompletecloseBidcloseAskopenBidopenAskhighBidhighAsklowBidlowAskcloseMid02016-08-0721:00:00+00:009True0.847340.848420.847060.848140.847340.848420.847060.848140.8478812016-08-0721:05:00+00:0010True0.847350.848410.847520.848320.847520.848460.847120.8482

python - Pandas 0.23 groupby 和 pct 更改未返回预期值

对于以下数据框中的每个Name,我试图找出从一个Time到下一个Amount列的百分比变化:创建数据框的代码:importpandasaspddf=pd.DataFrame({'Name':['Ali','Ali','Ali','Cala','Cala','Cala','Elena','Elena','Elena'],'Time':[1,2,3,1,2,3,1,2,3],'Amount':[24,52,34,95,98,54,32,20,16]})df.sort_values(['Name','Time'],inplace=True)我尝试的第一种方法(基于thisquestionan

python - Pandas 滚动申请不做任何事情

我有一个像这样的DataFrame:df2=pd.DataFrame({'date':['2015-01-01','2015-01-02','2015-01-03'],'value':['a','b','a']})datevalue02015-01-01a12015-01-02b22015-01-03a我正在尝试了解如何对其应用自定义滚动功能。我试过这样做:df2.rolling(2).apply(lambdax:1)但这给了我原来的数据帧:datevalue02015-01-01a12015-01-02b22015-01-03a如果我有一个不同的DataFrame,像这样:df3=p

python - 使用多索引在 Pandas 中添加小计列

我有一个数据框,在列上有一个3级深度多索引。我想计算跨行(sum(axis=1))的小计,其中我对其中一个级别求和,同时保留其他级别。我想我知道如何使用pd.DataFrame.sum的level关键字参数来做到这一点。但是,我在考虑如何将这个总和的结果合并回原始表时遇到了麻烦。设置:importnumpyasnpimportpandasaspdfromitertoolsimportproductnp.random.seed(0)colors=['red','green']shapes=['square','circle']obsnum=range(5)rows=list(produc