为了账号安全,请及时绑定邮箱和手机立即绑定

替换 Pandas 数据框中的值

替换 Pandas 数据框中的值

萧十郎 2024-01-04 10:41:06
我想编辑 Pandas 数据框,您可以从这里获取数据集。 样本数据集正如您所看到的,每个“区域”都有一些“类别”,每个“类别”都有不同的“价格”。我想统一每个“区域”的“类别”,“类别”的值应该是每个“区域”的底部。换句话说,“category”的某些值将发生如下变化。之前:区域:A,类别:1,价格:500之后:区域:A,类别:2,价格:500图像我知道可以通过数据透视表编辑此数据框,如下所示。但在这种情况下,我无法统一并显示“类别”的值。pd.pivot_table(df, values="price", index=["area",], aggfunc='sum')如果您提供统一类别值的想法,我将不胜感激。
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

您可以尝试这个,尽管它可能不是最好的选择。


使用您提到的代码后:


df_new = pd.pivot_table(df, values="price", index=["area",], aggfunc='sum')

我创建了一个函数来查找每个区域的最后一个类别(其中 df 是原始 DataFrame):


    def find_category(cat, list_categories):

        list_categories.append(df[df['area'] == cat].iloc[-1].category)

然后使用 for 循环搜索每个区域的最后一个类别并将其添加到新的类别列中。然后,如果需要,您可以对列重新排序:


list_categories = [] 


for area in df_new.index:

    find_category(area, list_categories)


df_new['category'] = list_categories

df_new = df_new[['category','price']]

输出将是:


     category   price

area        

A    2          900

B    1          350

C    4          800

D    1          500


查看完整回答
反对 回复 2024-01-04
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信