2017-06-21 63 views
0

我正在尝试计算在dataframe行子部分中有多少个值。值实际上是字符串,所以即使数1或-1也不行。因此,我将数值转换为'a','b'和'c'。在下面的例子中:大熊猫,Python:在df行分部分中发生次数

COL1 COL2 COL3 COL4 'a' 'b' 'c' # last 3 columns abc would count occurences 
a  c  b  c 
c  a  a  b 
c  b  c  b 

但我只是试图计算COL3和COL4的每行的值。 我看过各种答案,包括here。我还尝试通过以下内容添加小节:df1["a"] = df1[COL3:COL4], count(a) 感谢您的建议。

+0

为了更加清晰,您能否为给定数据框提供预期输出? – akilat90

+0

@ akilat90:艾伦反应所显示的预期输出格式看起来不错,因为我想要计算出现的次数 – user1739581

回答

2

这是你在追求什么?

您可以使用value_counts来计算第3列和第3列中的元素出现次数,然后将计数df连接到原始df。

pd.concat([df,\ 
      df[['COL3','COL4']].apply(lambda x: x.value_counts(),axis=1).fillna(0)],\ 
      axis=1) 
Out[13]: 
    COL1 COL2 COL3 COL4 a b c 
0 a c b c 0.0 1.0 1.0 
1 c a a b 1.0 1.0 0.0 
2 c b c b 0.0 1.0 1.0