簡體   English   中英

查找每列唯一值的計數並保存在 CSV 中

[英]Find count of unique value of each column and save in CSV

我有這樣的數據:

+---+---+---+
| A | B | C |
+---+---+---+
| 1 | 2 | 7 |
| 2 | 2 | 7 |
| 3 | 2 | 1 |
| 3 | 2 | 1 |
| 3 | 2 | 1 |
+---+---+---+

需要計算每列的唯一值並報告如下:

+---+---+---+
| A | 3 | 3 |
| A | 2 | 1 |
| A | 1 | 1 |
| B | 2 | 5 |
| C | 1 | 3 |
| C | 7 | 2 |
+---+---+---+

當列數限制並手動命名時我沒有問題,當輸入文件很大時變得很難,需要有簡單的方法來擁有 output

這是我的代碼

import pandas as pd 
df=pd.read_csv('1.csv')

A=df['A']
B=df['B']
C=df['C']

df1=A.value_counts()
df2=B.value_counts()
df3=C.value_counts()

all = {'A': df1,'B': df2,'C': df3}
result = pd.concat(all)
result.to_csv('out.csv')

DataFrame.stackSeriesGroupBy.value_counts一起使用,然后通過Series.rename_axisSeries.reset_indexSeries轉換為DataFrame和:

df=pd.read_csv('1.csv')

result = (df.stack()
            .groupby(level=1)
            .value_counts()
            .rename_axis(['X','Y'])
            .reset_index(name='Z'))

print (result)
   X  Y  Z
0  A  3  3
1  A  1  1
2  A  2  1
3  B  2  5
4  C  1  3
5  C  7  2

   X  Y  Z
2  A  3  3
0  A  1  1
1  A  2  1
3  B  2  5
4  C  1  3
5  C  7  2

result.to_csv('out.csv', index=False)

您可以遍歷列並將它們插入字典。 您可以通過all={}啟動字典。 為了可擴展,您可以按colm=df.columns讀取列。 這將為您提供 df.xml 中的所有列。

試試這個代碼:

import pandas as pd 
df=pd.read_csv('1.csv')
all={}
colm=df.columns
for i in colm:
    all.update({i:df[i].value_counts()})

result = pd.concat(all)
result.to_csv('out.csv')

找到數據框的唯一值。

df.A.unique()

知道唯一值的計數。

len(df.A.unique())

unique 創建一個數組來查找計數使用 len() function

暫無
暫無

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

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