簡體   English   中英

如何將 value_count 輸出分配給數據幀

[英]How to assign a value_count output to a dataframe

我正在嘗試將 value_count 的輸出分配給新的 df。 我的代碼如下。

import pandas as pd
import glob


df = pd.concat((pd.read_csv(f, names=['date','bill_id','sponsor_id']) for f in glob.glob('/home/jayaramdas/anaconda3/df/s11?_s_b')))


column_list = ['date', 'bill_id']

df = df.set_index(column_list, drop = True)
df = df['sponsor_id'].value_counts()

df.columns=['sponsor', 'num_bills']
print (df)

值計數沒有被指定為“贊助商”、“num_bills”的列標題。 我從 print.head 得到以下輸出

1036    426
791     408
1332    401
1828    388
136     335
Name: sponsor_id, dtype: int64

您的列長度不匹配,您從csv中讀取3列然后將索引設置為2,您計算的value_counts會生成一個以列值作為索引而值為value_counts作為值的reset_index ,您需要reset_index然后覆蓋列名:

df = df.reset_index()
df.columns=['sponsor', 'num_bills']

例:

In [276]:
df = pd.DataFrame({'col_name':['a','a','a','b','b']})
df

Out[276]:
  col_name
0        a
1        a
2        a
3        b
4        b

In [277]:
df['col_name'].value_counts()

Out[277]:
a    3
b    2
Name: col_name, dtype: int64

In [278]:    
type(df['col_name'].value_counts())

Out[278]:
pandas.core.series.Series

In [279]:
df = df['col_name'].value_counts().reset_index()
df.columns = ['col_name', 'count']
df

Out[279]:
  col_name  count
0        a      3
1        b      2

將 value_counts() 附加到多列數據框:

df = pd.DataFrame({'C1':['A','B','A'],'C2':['A','B','A']})
vc_df = df.value_counts().to_frame('Count').reset_index()
display(df, vc_df)

    C1  C2
0   A   A
1   B   B
2   A   A

    C1   C2 Count
0   A   A   2
1   B   B   1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM