【发布时间】:2020-09-15 00:30:07
【问题描述】:
我有两个系列,第一个是
Date Item
2012 Cheeseburger
Pasta
Rice
2013 Tomatoes
Salad
Cheese
第二个是:
Name Cheese Milk Pasta Juice Rice Cake Tomatoes Fries Beef Salad Cheeseburger
2012 2 1 1.5 1 0.5 3 2.2 1.4 5 2 4.5
2013 1.7 0.9 1.7 1 0.75 3 2.2 1.3 5.3 1.9 4
我想在第一个系列中创建第三列,以将存在于第二个系列中的值与相同的日期和相同的名称相匹配。我真的不知道该怎么做。 我尝试使用堆栈方法但没有成功。
最终结果应该是这样的:
Date Item
2012 Cheeseburger 4.5
Pasta 1.5
Rice 0.5
2013 Tomatoes 2.2
Salad 1.9
Cheese 1.7
有人知道怎么做吗?谢谢
这是生成第二个数据帧的代码
df_two = pd.DataFrame({
"2012": [2, 1, 1.5, 1, 0.5, 3, 2.2, 1.4, 5, 2, 4.5],
"2013": [1.7, 0.9, 1.7, 1, 0.75, 3, 2.2, 1.3, 5.3, 1.9, 4]
})
df_two.columns = [
"Cheese", "Milk", "Pasta", "Juice", "Rice",
"Cake", "Tomatoes", "Fries", "Beef", "Salad", "Cheeseburger"]
【问题讨论】:
-
根据您的问题,您的输出应该包含第二个表中的所有项目。换句话说,Cheese 和 Milk 总是输出数据框中的第一项?还是因为您还想要过滤而故意将它们排除在外?
-
我也想要一个过滤器,这是我的主要问题。第一个表是从全局表示在第二个表中的“宇宙”中的选择
-
哦,现在我明白了。这实际上很容易。但是,我仍然不完全了解您的数据结构。都是
pandas数据帧吗? -
非常感谢您的帮助。第一个表是 Pandas Serie,但第二个表是 Pandas 数据框
-
酷! @wwnde 确实已经提供了一个基于合并的不错的解决方案。请注意我对解决方案的评论。
标签: python pandas numpy time-series