草庐IT

python - 在多索引 pandas DataFrame 上选择一列

给定这个DataFrame:frompandasimportDataFramearrays=[['bar','bar','baz','baz','foo','foo'],['one','two','one','two','one','two']]tuples=zip(*arrays)index=pd.MultiIndex.from_tuples(tuples,names=['first','second'])df=DataFrame(randn(3,6),index=[1,2,3],columns=index)如何绘制图表:X轴:1、2、3。这三个系列的名字是:bar、baz、foo。

python - 展平具有类型列表值的列,同时在 Pandas 中相应地复制另一列的值

尊敬的powerPandas专家:我正在尝试实现一个函数来展平具有类型列表元素的数据框的列,我希望数据框的每一行都具有列表类型的元素,除了指定列之外的所有列都是flattened将被复制,而指定的列将具有列表中的值之一。以下说明我的要求:input=DataFrame({'A':[1,2],'B':[['a','b'],'c']})AB01[a,b]12cexpected=DataFrame({'A':[1,1,2],'B':['a','b','c']},index=[0,0,1])AB01a01b12c我觉得可能有一个优雅的解决方案/概念,但我正在努力。这是我的尝试,还没有成功。de

python - 在具有数值的列上的 pandas 数据框中逐行应用函数

我有以下数据框:importpandasaspddf=pd.DataFrame({'AAA':['w','x','y','z'],'BBB':[10,20,30,40],'CCC':[100,50,-30,-50]})看起来像这样:In[32]:dfOut[32]:AAABBBCCC0w101001x20502y30-303z40-50我想做的是对每一行的每一列执行函数操作,除了具有非数值的那些(在本例中为AAA)。在真实情况下,非数字的情况总是在第一列,其余的(可能大于2列)总是数字的。最终期望的输出是:AAABBBCCCScore0w101001101x2050702y30-300

python - 如何通过不包含子字符串的单元格过滤 Pandas 数据框?

我想过滤数据框以查找不包含字符串“site”的行。我知道如何过滤确实包含“站点”但无法进行反向工作的行。这是我目前所拥有的:defrbs():#removesblockedsitesframe=fill_rate()mask=frame[frame['Media'].str.contains('Site')==True]frame=(frame!=mask)returnframe但这当然会返回一个错误。 最佳答案 只需执行frame[~frame['Media'].str.contains('Site')]~否定bool条件所以你的

python - 根据列名拆分 Pandas 数据框

有没有办法根据列名拆分pandas数据框?例如,考虑数据框具有以下列df=['A_x','B_x','C_x','A_y','B_y','C_y']我想创建两个数据帧X=['A_x','B_x','C_x']和Y=['A_y','B_y','C_y'].我知道有可能这样做:d={'A':df.A_x,'B':df.B_x,'C':df.B_x}X=pd.DataFrame(data=d)但这并不理想,因为在我的例子中,我在df中有2200列。有没有更优雅的解决方案? 最佳答案 你可以使用df.filter(regex=...):im

python - 在 azure ml 中运行笔记本时如何最好地将 azure blob csv 格式转换为 pandas 数据框

我有许多存储为azureblob的大型csv(制表符分隔)数据,我想从这些数据中创建一个pandas数据框。我可以按如下方式在本地执行此操作:fromazure.storage.blobimportBlobServiceimportpandasaspdimportos.pathSTORAGEACCOUNTNAME='account_name'STORAGEACCOUNTKEY="key"LOCALFILENAME='path/to.csv'CONTAINERNAME='container_name'BLOBNAME='bloby_data/000000_0'blob_service=B

python - 推断 Pandas DataFrame

使用Series.interpolate很容易在Pandas.DataFrame中插入值,如何进行外推?例如,给定一个如图所示的DataFrame,我们如何将它外推14个月到2014年12月31日?线性外推法很好。X1=range(10)X2=map(lambdax:x**2,X1)df=pd.DataFrame({'x1':X1,'x2':X2},index=pd.date_range('20130101',periods=10,freq='M'))我认为必须首先创建一个新的DataFrame,DateTimeIndex从2013-11-31开始,再延长14个M时间段。除此之外,我被

python - Pandas 中的日期到持续时间

我觉得这应该很容易完成,但我不知道怎么做。我有一个pandasDataFrame列date:02012-08-2112013-02-1722013-02-1832013-03-0342013-03-04Name:date,dtype:datetime64[ns]我想要一列持续时间,例如:00180days21day315days41dayName:date,dtype:datetime64[ns]我的尝试产生了一堆0天和NaT:>>>df.date[1:]-df.date[:-1]0NaT10days20days...有什么想法吗? 最佳答案

python - Matplotlib、Pandas、饼图标签错误

我使用Pandas包装器counts.plot(kind='pie')和Matplotlib直接`plt.pie(counts)生成了一个饼图。问题是标签。使用两个饼图都正确地表示值=饼楔,但是当我开始引入自定义颜色和图例时,标签已关闭。饼图标签是正确的,但图例标签是根据它们在group_name中的标签顺序绘制的,而不是它们的值。关于如何解决此问题的任何想法?代码=group_names=['2-3km','3-5km','5-7km','7-10km','10-20km','20-50km','50-75km','75-100km','>100km']df['bins']=pd.c

python - 使用 pandas dataframe 绘制误差线 matplotlib

我确信这相对容易,但我似乎无法让它发挥作用。我想使用matplotlib模块绘制此df,其中日期为x轴,gas为y轴,std为错误栏。我可以使用pandas包装器让它工作,但我不知道如何设置错误栏的样式。使用Pandasmatplotlib包装器我可以使用matplotlibpandaswrappertrip.plot(yerr='std',ax=ax,marker='D')绘制误差线但是我不确定如何使用plt.errorbar()访问错误栏以像在matplotlib中那样设置它们的样式使用Matplotlibfig,ax=plt.subplots()ax.bar(trip.index