[英]Is there a way to parse each unique value of a column into individal CSV's?
[英]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.stack
與SeriesGroupBy.value_counts
一起使用,然后通過Series.rename_axis
和Series.reset_index
將Series
轉換為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.