【发布时间】:2020-01-21 05:03:13
【问题描述】:
所以我有两个数据集,drinks 和drinks2,关于星巴克饮料的营养信息,每个数据集都有一组不同的饮料作为观察结果。
饮料列:
['Beverage', 'Calories', 'Fat (g)', 'Carb. (g)', 'Fiber (g)','Protein (g)', 'Sodium (g)']
饮料列2:
['Beverage_category', 'Beverage', 'Beverage_prep', 'Calories', 'Fat (g)','Trans Fat (g)', 'Saturated Fat (g)', 'Sodium (g)', 'Carb. (g)', 'Cholesterol (mg)', 'Fiber (g)', 'Sugars (g)', 'Protein (g)','Vitamin A (% DV)', 'Vitamin C (% DV)', 'Calcium (% DV)', 'Iron (% DV)', 'Caffeine (mg)']
将两个数据集合并到共同的'Beverage' 列后,新数据集的'Beverage' 列由三个值的多次出现组成;拿铁咖啡、焦糖玛奇朵、卡布奇诺咖啡,这表示在初始数据帧的两个原始“饮料”列中都存在这些值,并且它们的存在通过手动检查得到确认。
但是,当尝试使用以下 for 循环打印出公共值时:
for i, v in drinks2['Beverage'].iteritems():
if v in drinks['Beverage']:
print(v)
输出上没有显示任何内容。两个饮料列之间有共同的值,但没有打印任何内容。知道为什么吗?
【问题讨论】:
-
如果在每次迭代中打印 i 和 v 的值会怎样?
-
你有dfs的样本吗?
-
您不会比较相同的数据类型。请注意,您这样做了:对于 dict1.iteritems() 中的 i,v,然后将其与 dict() 中的 v 进行比较。您应该将 dict1().iteritems() 与 dict2.iteritems() 或 dict1.values() 与 dict2.values() 进行比较。
标签: python pandas loops for-loop