python - 如何从pandas中的csv文件中进行计数和百分比

标签 python pandas

我有 3gb csv 文件以及如何计算重复的 URL 和百分比

是计算百分比的总和吗?

import pandas as pd
df = pd.read_csv("/Users/url_all/auguesturl.csv",names=['URL','Count'])
dd = df.groupby(
    df.columns.tolist(),
    as_index=False
).size().sort_values(ascending=False).apply(lambda r: r/r.sum(),axis=1)
# percentage
# ss = df.groupby('Count').size() / df.groupby('Count').size().sum()
print(dd)

我的输出是:

setup.iclo.com:443  8354271
da.ds-int.net:443   7278819

我喜欢这样的输出

URL                          Count      Percentage
googleads.g.doubl.net:443   1,314,530   2.1 
s.yimg.com:443              986,275     1.6 

最佳答案

我认为需要对Count列进行聚合sum,并为新列除以总计:

df = pd.DataFrame({
    'URL': ['a','a','a','a','b','b','b','c','d'],
    'Count': list(range(9))
})
print (df)
  URL  Count
0   a      0
1   a      1
2   a      2
3   a      3
4   b      4
5   b      5
6   b      6
7   c      7
8   d      8

df1 = df.groupby('URL', as_index=False)['Count'].sum()
df1['Percentage'] = df1['Count'] / df1['Count'].sum()
df1 = df1.sort_values('Count', ascending=False)
print (df1)
  URL  Count  Percentage
1   b     15    0.416667
3   d      8    0.222222
2   c      7    0.194444
0   a      6    0.166667

但是如果需要计算 URL 值,请使用 value_countsGroupBy.size :

df1 = df['URL'].value_counts().reset_index()
df1.columns = ['URL','Count']
df1['Percentage'] = df1['Count'] / df1['Count'].sum()

替代方案:

df1 = df.groupby('URL').size().reset_index(name='Count')
df1['Percentage'] = df1['Count'] / df1['Count'].sum()
df1 = df1.sort_values('Count', ascending=False)
<小时/>
print (df1)
  URL  Count  Percentage
0   a      4    0.444444
1   b      3    0.333333
2   d      1    0.111111
3   c      1    0.111111

关于python - 如何从pandas中的csv文件中进行计数和百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52160567/

相关文章:

Python - json 中的 `\n`

python - 在 Pandas DataFrame 中选择多个列范围

python - 根据条件获取同一 pandas 数据框中同一列的两个值之间的差异

python - Pandas 在多列数据框上应用函数

python - 类型错误 : float() argument must be a string or a number, 而不是 'NaTType'

python - 如何从方法内部调用方法?

python - 当我有大量数组时检查重复数组

python - 如何使用python随机列表

python - 使用 MatPlotLib 和 Numpy 将高斯拟合到直方图 - Y 缩放错误?

python pandas 获取系列的准确性