草庐IT

python - 按月份名称对 Pandas 数据框系列进行排序

我有一个Series对象,它有:datepricedec12may15apr13..问题陈述:我想让它按月显示并计算每个月的平均价格并按月以排序方式呈现。期望的输出:monthmean_priceJanXXXFebXXXMarXXX我想制作一个列表并将其传递给排序函数:months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]但是sort_values不支持系列。我的一个大问题是即使df=df.sort_values(by='date',ascending=True,inplace=T

python - 如何在 Pandas 中按对象分组应用滚动功能

我在解决dataframe或groupby中的回顾或翻转问题时遇到了困难。以下是我拥有的数据框的一个简单示例:fruitamount20140101apple320140102apple520140102orange1020140104banana220140104apple1020140104orange420140105orange620140105grape1…20141231apple320141231grape2我需要计算前3天每天每个水果的“数量”的平均值,并创建以下数据框:fruitaverage_in_last3days20140104apple420140104ora

python - pandas - 返回指数值列

从一个示例数据框df开始,例如:a,b0,0.711,0.752,0.803,0.90我将添加一个新列,其中包含b列的指数值。到目前为止我试过:df['exp']=math.exp(df['b'])但是这个方法返回:"cannotconverttheseriesto{0}".format(str(converter)"TypeError:cannotconverttheseriesto有没有办法将数学函数应用于整列? 最佳答案 math.exp不理解Series数据类型,请使用numpynp.exp它执行并被矢量化,因此对整个列进行

python - Pandas :按日期和另一个变量的中位数分组

这是我的DataFrame的演示示例。完整的DataFrame有多个附加变量,涵盖6个月的数据。sentimentdate12015-05-2618:58:440.92015-05-2619:57:310.72015-05-2618:58:240.42015-05-2719:17:340.62015-05-2718:46:120.52015-05-2713:32:2412015-05-2819:27:310.72015-05-2818:58:440.22015-05-2819:47:34我想仅按date列的日期对DataFrame进行分组,但同时聚合sentiment列的中位数。我用g

python - 从 pandas groupby 中的每个组中选择前 n 个元素

我有一个大致如下所示的数据框:>>>datapricecurrencyid21050EU51400EU41750EU84000EU7630GBP11000GBP91400GBP32000USD67000USD我需要为每种货币获取一个包含n最高价产品的新数据框,其中n取决于货币并在另一个数据框中给出:>>>select_numbernumber_to_selectcurrencyGBP2EU2USD1如果我必须选择相同数量的最高价元素,我可以使用pandas.groupby按货币对数据进行分组,然后使用分组的head方法对象。但是,head只接受一个数字,不接受数组或某些表达式。当然,我

python - Pandas 替换为默认值

我有一个pandas数据框,我想有条件地替换某个列。例如:col0Mr1Miss2Mr3Mrs4Col.我想将它们映射为{'Mr':0,'Mrs':1,'Miss':2}如果字典中现在还有其他可用的标题,那么我希望它们的默认值为3上面的例子变成了col0012203143我可以在不使用正则表达式的情况下使用pandas.replace()执行此操作吗? 最佳答案 您可以使用map而不是replace,因为更快,然后fillna通过3并通过astype转换为int:df['col']=df.col.map({'Mr':0,'Mrs':

python - Pandas ,适用于作为数据框行条目的参数

我有一个带有两列“A”和“B”的Pandas数据框“df”,我有一个带有两个参数的函数defmyfunction(B,A):#dosomethingheretogettheresultreturnresult我想使用“apply”函数将它逐行应用到dfdf['C']=df['B'].apply(myfunction,args=(df['A'],))但是我得到了错误ValueError:ThetruthvalueofaSeriesisambiguous.Usea.empty,a.bool(),a.item(),a.any()ora.all().这是怎么回事,好像把df['A']当成整个系

python - 在 python pandas 中,如何重新采样和插入 DataFrame?

我有一个pdDataFrame,通常采用这种格式:12340.11000.0000E+001.0000E+005.0000E+000.13237.7444E-058.7935E-011.0452E+000.15454.3548E-047.7209E-014.5432E-010.17681.2130E-036.7193E-012.6896E-010.19902.5349E-035.7904E-011.8439E-010.22134.5260E-034.9407E-011.3771E-01我想做的是从列表中重新采样第1列(索引)值,例如:indexList=numpy.linspace(0

python - 计算两个 Pandas 数据帧的行之间的欧几里得距离

我有两个pandas数据帧d1和d2,如下所示:d1看起来像:outputvalue1value2value2110010387120197.588.911445485d2看起来像:outputvalue1value2value2010010387020197.588.901445485010010387020197.588.901445485d1中所有行的列输出值为1,d2中所有行的值为0。这是一个分组变量。我需要找到d1和d2的每一行之间的欧氏距离(不在d1或d2内)。如果d1有m行并且d2有n行,那么距离矩阵将有m行和n列 最佳答案

python - 使用分隔符 pandas python 将单元格连接成一个字符串

鉴于以下情况:df=pd.DataFrame({'col1':["a","b"],'col2':["ab",np.nan],'col3':["w","e"]})我希望能够创建一个列,将所有三列的内容连接成一个字符串,用字符“*”分隔,同时忽略NaN。例如这样我会得到类似的东西:a*ab*wb*e有什么想法吗?刚刚意识到还有一些额外的要求,我需要该方法来处理整数和float,并且还能够处理特殊字符(例如,西类牙字母表中的字母)。 最佳答案 In[68]:df['new_col']=df.apply(lambdax:'*'.join(x