【问题标题】:Finding values in a column that are same and making separate dataframes of them [duplicate]在相同的列中查找值并为它们制作单独的数据框[重复]
【发布时间】:2019-06-21 09:12:30
【问题描述】:

我有一个 pandas 数据框,它包含两列,一列有很多值,另一列只包含大部分相同的值。这是数据框的样子:

Item        Price

Apple        10
Banana        5
Mango        10 
Pineapple     7 
Kiwi          5
Tomatoes      2 
Eggs         10
Potatoes      7
Burgers       5
Milk          2
Chicken      10
Coffee        7
Noodles       5

价格列上的值发生变化。我希望能够过滤价格相同的项目并从中创建一个新的数据框。我无法做的是寻找发生的不同价格,如果价格保持不变,那么我可以根据它过滤商品,但当价格任意变化时我不能。 这就是我想要实现的,它只是一个特定价格的数据框作为示例。

Item       Price

Apple        10
Mango        10
Eggs         10
Chicken      10

【问题讨论】:

  • 尝试df.groupby('Price')获取相同价格的组
  • 这只是排序,我需要将它们分开
  • 您可以将 groupby 对象转换为元组,然后将每个组作为字典的键进行 dict 和访问。如果您需要有关如何操作的更多信息,请查看此帖子所附的链接。

标签: python-3.x pandas


【解决方案1】:

您可以使用数据框函数来获取子集。

price_list = df.Price.unique()
sets = []
for price in price_list:
    sets.append(df[df.Price == price])

【讨论】:

  • 我已经知道了,问题是我不知道它们随意更改的较新数据帧的价格。只有当我知道数据框中存在哪些价格且相当大并且准确地指出每个价格是人类不可能时,我才能使用它
  • 抱歉造成混淆,您可以在任何给定点 df.Price.unique() 获得唯一的价格值,然后使用该列表获取单独的新数据帧
【解决方案2】:

您可以使用以下方法进行此操作:

df_new = []
for i in df['Price'].unique():
    df1 = df[df['Price']==i]
    df_new.append(df1)

print(df_new[0])

输出:

Item       Price

Apple        10
Mango        10
Eggs         10
Chicken      10

【讨论】:

  • 但这会创建一个包含所有数据帧组合的列表,而我需要将每个数据帧分开。
  • 使用index 分别访问每个数据帧。 df1=df_new[0] 等等...
猜你喜欢
  • 2020-05-30
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
  • 1970-01-01
  • 2021-10-24
相关资源
最近更新 更多