df = pd.DataFrame({'Col1': ['Bob', 'Joe', 'Bill', 'Mary', 'Joe'],
'Col2': ['Joe', 'Steve', 'Bob', 'Bob', 'Steve'],
'Col3': np.random.random(5)})
Run Code Online (Sandbox Code Playgroud)
返回'Col1'和'Col2'的唯一值的最佳方法是什么?
期望的输出是
'Bob', 'Joe', 'Bill', 'Mary', 'Steve'
Run Code Online (Sandbox Code Playgroud) 这是熊猫groupby("x").count
和groupby("x").size
熊猫之间的区别?
尺寸只是排除零吗?
我试图找出如何根据每对唯一列(ip,useragent)的行数来计算,例如
d = pd.DataFrame({'ip': ['192.168.0.1', '192.168.0.1', '192.168.0.1', '192.168.0.2'], 'useragent': ['a', 'a', 'b', 'b']})
ip useragent
0 192.168.0.1 a
1 192.168.0.1 a
2 192.168.0.1 b
3 192.168.0.2 b
Run Code Online (Sandbox Code Playgroud)
生产:
ip useragent
192.168.0.1 a 2
192.168.0.1 b 1
192.168.0.2 b 1
Run Code Online (Sandbox Code Playgroud)
想法?
假设我有2列pandas数据框:
df: Col1 Col2
1 1
1 2
1 2
1 2
3 4
3 4
Run Code Online (Sandbox Code Playgroud)
然后我想只保留这两列的唯一值(col1,col2)并给出它们的频率:
df2: Col1 Col2 Freq
1 1 1
1 2 3
3 4 2
Run Code Online (Sandbox Code Playgroud)
我想使用df['Col1', 'Col2'].value_counts()
但它只适用于一列.它是否存在处理许多列的功能?
我想提取列的所有唯一值组合Col1
,Col2
和Col3
.假设有以下数据帧df
:
df =
Col1 Col2 Col3
12 AB 13
11 AB 13
12 AB 13
12 AC 14
Run Code Online (Sandbox Code Playgroud)
答案是:
unique =
Col1 Col2 Col3
12 AB 13
11 AB 13
12 AC 14
Run Code Online (Sandbox Code Playgroud)
我知道如何获得特定列的唯一值,即df.Col1.unique()
不确定唯一的组合.
我查看了各种解决在特定列上计算重复行的问题的 SO 问题,最相关的是这个问题。
问题是,这个解决方案非常具体,我无法弄清楚如何将它推广到具有更多数据的数据帧。我有一个包含多列的数据框,我想添加一个名为“A_D_E_count”的新列,该列将指示整个数据框中有多少行具有每行的 A、D 和 E 列的相同值。
最好这应该使用.transform
功能
例子:
Out[6]:
A B C D E
0 294 41981 37597 39875 33364
1 294 39776 37597 37572 39171
2 294 44658 49408 43713 49408
3 294 58615 52065 43713 49408
4 294 44811 51238 42926 49408
Run Code Online (Sandbox Code Playgroud)
在这个数据框上,我想添加一个列来计算包含相同A
D
和E
值的行数,因此结果将是
Out[6]:
A B C D E A_D_E_count
0 294 41981 37597 39875 33364 1
1 294 39776 37597 37572 39171 1
2 294 44658 …
Run Code Online (Sandbox Code Playgroud)