因此,我有两个关于星巴克饮料营养信息的数据集,即Drinks和Drinks2,每个数据集都有一组不同的饮料作为观测值。
饮料列:
events:[
{
"title":"Meeting2",
"start":"2019-09-30 00:00:00",
"end":"2019-09-30 00:00:00"
}
]
饮料列2:
events:'<?php echo site_url('Calendar/load'); ?>'
在将两个数据集合并到它们共同的['Beverage', 'Calories', 'Fat (g)', 'Carb. (g)', 'Fiber (g)','Protein (g)', 'Sodium (g)']
列上时,新数据集的['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)']
列包含三个值的多次出现; Caffe Latte,Caramel Macchiato,Cappuccino,表示初始数据框中的两个“饮料”原始列中都存在这些值,并通过手动检查确认了它们的存在。
但是,当尝试使用以下for循环打印常用值时:
'Beverage'
什么都没有显示在输出上。在两个饮料列之间有共同的值,但没有打印任何内容。知道为什么吗?
答案 0 :(得分:0)
获取具有共同值的列
import pandas as pd
d1 = {'Beverage': ['Beverage', 'Calories', 'Fat (g)', 'Carb. (g)', 'Fiber (g)','Protein (g)', 'Sodium (g)',]}
d2 = {'Beverage': ['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)',]}
df1 = pd.DataFrame(d1)
df2 = pd.DataFrame(d2)
dx = pd.merge(df1, df2, on='Beverage', how='inner')
使代码正常工作
print([i for i in sum(d1.values(),[]) if i in sum(d2.values(), [])])
答案 1 :(得分:0)
要查找常见元素,可以改用:
BotServices
如果您想使代码正常工作,可以使用以下代码:
import numpy as np
np.intersect1d(drinks['Beverage'], drinks2['Beverage'])
或者:
for v in drinks2['Beverage']:
if v in drinks['Beverage'].values:
print(v)
或者:
for i, v in drinks2['Beverage'].iteritems():
for j, w in drinks['Beverage'].iteritems():
if v == w:
print(v)