【问题标题】:Comparing rows of pandas dataframe and find intersection?比较熊猫数据框的行并找到交集?
【发布时间】:2016-08-23 15:11:12
【问题描述】:

我有一个 df :

year name_list
2009  [sam,maj,mak]
2010 [sam, mak, ali, mo, za]
2011 [mp,ki]

我想根据 name_list 比较每一行,并计算每年添加/删除多少新名称。 预期结果:

 year   name_list          added_count   removed_count
 2009  [sam,maj,mak]                0         0
 2010  [sam, mak, ali, mo, za]      3         1
 2011  [mp,ki]                      2         5 

有人可以帮忙吗?

【问题讨论】:

    标签: python pandas compare rows


    【解决方案1】:

    前两行是将 2009 的值初始化为零。假设年份按时间顺序排列,并且年份在索引中而不是单独的列中。还假定列“name_list”中的名称没有重复值。

    df.loc[2009,'added_count'] = 0
    df.loc[2009,'removed_count'] = 0
    for i in df.index[1:]:
        df.loc[i,'added_count'] = len(list(set(df.loc[i,'name_list'])-set(df.loc[i-1,'name_list'])))
        df.loc[i,'removed_count'] = len(list(set(df.loc[i-1,'name_list'])-set(df.loc[i,'name_list'])))
    

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      相关资源
      最近更新 更多