【问题标题】:JupyterLab / Python / Pandas - Comparing two DataframesJupyterLab / Python / Pandas - 比较两个数据框
【发布时间】:2020-04-23 09:28:45
【问题描述】:

我正在尝试导入两个文件并比较 df1 中的值计数(按状态的数据)和 df2 中该状态的连续数字。

换句话说,在一个 Excel 文件中,我有如下内容:

State      Food
Arizona    Bananas
Arizona    Pears
Arizona    Pickles
Connecticut Potatoes
Connecticut Apples

等等。

所以我感兴趣的是状态出现的次数,值的计数。

在另一个文件中,我有一列包含 50 个州和一个数字。

我要做的基本上是创建一个数据框,按州显示该州在 df1 中出现的次数(所以这里是亚利桑那州为 3)除以第二个中与亚利桑那州对应的列中的数字数据框。这有意义吗?

第二个数据框包含每个州的总人口,因此上述 3/n 的输出将是人均水果。

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

以下将起作用

import numpy as np
import pandas as pd

df1 = pd.DataFrame({'state': ['Arizona', 'Arizona', 'Arizona', 
                              'Connecticut', 'Connecticut'],
                  'food': ['Bananas', 'Pears', 'Pickles', 'Potatoes', 'Apples']})
df2 = pd.DataFrame({'state':['Arizona', 'Connecticut'],
                  'population': [7300000, 3565000 ]})

df1 = df1.groupby('state').count().merge(df2.set_index('state'), 
                                      how = 'left', left_index = True, right_index = True)
df1['result'] = df1['food']/df1['population']
df1


          food      population   result
state           
Arizona     3       7300000      4.109589e-07
Connecticut 2       3565000      5.610098e-07

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    相关资源
    最近更新 更多