草庐IT

pandas-datareader

全部标签

python - 使用 pandas/matplotlib 或 seaborn 排序的条形图

我有一个包含5000个产品和50个特征的数据集。其中一列是“颜色”,该列中有100多种颜色。我正在尝试绘制条形图以仅显示前10种颜色以及每种颜色有多少产品。top_colors=df.colors.value_counts()top_colors[:10].plot(kind='barh')plt.xlabel('No.ofProducts');使用Seaborn:sns.factorplot("colors",data=df,palette="PuBu_d");1)有更好的方法吗?2)我如何用Seaborn复制它?3)我如何绘制最高计数在顶部(即条形图最顶部的黑色)

python - Pandas groupby : percentage above threshold

我有一个DataFrame,我希望在其上使用groupby,但我正在寻找一些不寻常的函数来进行聚合。我想让每个组中的观察百分比超过某个阈值。例如,阈值为0时,DataFramedf=pd.DataFrame(dict(day=[1,1,1,2,2,2,3,3,3,4],value=[0,4,0,4,0,4,0,4,0,4]))dfdayvalue010114210324420524630734830944应该变成df_group=pd.DataFrame(dict(day=[1,2,3,4],value=[.33,.67,.33,1.0]))df_groupdayvalue010.33

python - Pandas:当列包含 numpy 数组时聚合

我使用的是pandasDataFrame,其中一列包含numpy数组。当尝试通过聚合对该列求和时,我收到一条错误消息,指出“必须产生聚合值”。例如importpandasaspdimportnumpyasnpDF=pd.DataFrame([[1,np.array([10,20,30])],[1,np.array([40,50,60])],[2,np.array([20,30,40])],],columns=['category','arraydata'])这按照我期望的方式工作:DF.groupby('category').agg(sum)输出:arraydatacategory1[

python - 比较包含 nan 的 pandas 系列是否相等?

我的应用程序需要比较有时包含nans的Series实例。这会导致使用==的普通比较失败,因为nan!=nan:importnumpyasnpfrompandasimportSeriess1=Series([1,np.nan])s2=Series([1,np.nan])>>>(Series([1,nan])==Series([1,nan])).all()False比较此类系列的正确方法是什么? 最佳答案 这个怎么样。首先检查NaN是否在同一位置(使用isnull):In[11]:s1.isnull()Out[11]:0False1Tr

python - 在 Pandas 中读取具有不同工作表名称的多个 excel 文件

要从目录中读取文件,请尝试以下操作:importosimportpandasaspdpath=os.getcwd()files=os.listdir(path)files['wind-diciembre.xls','stat_noviembre.xls','stat_marzo.xls','wind-noviembre.xls','wind-enero.xls','stat_octubre.xls','wind-septiembre.xls','stat_septiembre.xls','wind-febrero.xls','wind-marzo.xls','wind-julio.xl

python - 将新行添加到 Pandas 数据框

我有两个数据帧df1和df2是从同一来源计算的,但使用不同的方法,因此大多数值相同,但有一些差异。现在,我想根据df2中的值更新df1。例如:df1=pd.DataFrame({'name':['john','deb','john','deb'],'col1':[490,500,425,678],'col2':[456,625,578,789],'col3':['TN','OK','OK','NY']})namecol1col2col3john490456TNdeb500625OKjohn425578OKdeb678789NYdf2=pd.DataFrame({'name':['deb

python - 对 pandas 日期时间索引进行排序

我有一个我构建的pandas日期时间索引。可能是通过施工过程,个别成员不顺。我想对索引进行排序。有没有明显的方法可以做到这一点?到目前为止我所做的是这个importpandasaspdtseries=pd.to_datetime(['2001-02-04','2013-08-14','2008-01-25'])print'originalunsortedtseries'fortintseries:printttseries.values.sort()print'newsortedtseries'fortintseries:printt输出:originalunsortedtseries

python - pandas,matplotlib,使用数据帧索引作为轴刻度标签

我正在使用matplotlib的imshow()函数来显示pandas.DataFrame。我想从DataFrame.index和DataFrame.columns列表中绘制x轴和y轴的标签和刻度,但我不知道该怎么做。假设data是一个pandas.DataFrame:>>>printdataIndex:201entries,1901to2101Datacolumns:jan201non-nullvaluesfeb201non-nullvaluesmar201non-nullvaluesapr201non-nullvaluesmay201non-nullvaluesjun201non-

python - Pandas 根据条件交换列

我有一个如下所示的Pandas数据框:Col1Col2Col30A7NaN1B16NaN1B1615我想要做的是将Col2与Col3交换,其中Col3的值为NaN。根据SO上的其他帖子和答案,到目前为止我有这段代码:df[['Col2','Col3']]=df[['Col3','Col2']].where(df[['Col3']].isnull())但这似乎无法正常工作并给了我以下信息:Col1Col2Col30ANaNNaN1BNaNNaN1BNaNNaN这里有什么我可能遗漏的吗?更新:我想要的输出如下:Col1Col2Col30ANaN71BNaN161B1615谢谢

python - 在 Pandas 数据框中随机插入 NA 的值

如何在DataFrame中随机插入np.nan?假设我想在我的DataFrame中包含10%的空值。我的数据是这样的:df=pd.DataFrame(np.random.randn(5,3),index=['a','b','c','d','e'],columns=['one','two','three'])onetwothreea0.6951321.044791-1.059536b-1.0751050.8257761.899795c-0.6789800.051959-0.691405d-0.1829281.455268-1.032353e0.2050940.714192-0.93824