我有由 200 多列組成的資料框。我想 value_counts() 在每一列中。下面是我的代碼,它作業正常,但是當我想創建“csv”時。下面的代碼只輸入最后一列(值計數)。我都想要。
import pandas as pd
df = pd.read_csv("hcp.csv")
for col in df:
df2 = df[col].value_counts()
print(df2)
df2.to_csv("new_hcp.csv")
print(df2) 顯示所有值計數,但不顯示“CSV”。任何可以提供幫助的人,我將不勝感激。
uj5u.com熱心網友回復:
您可以使用apply
onvalue_counts
方法獲取按列計數的所有值:
import pandas as pd
df = pd.read_csv("hcp.csv")
df2 = df.apply(pd.Series.value_counts).unstack().to_frame().dropna().reset_index().rename(columns={'level_0': 'col_name', 'level_1': 'value_name', 0: 'count'})
df2.to_csv("new_hcp.csv", index=False)
uj5u.com熱心網友回復:
您正在覆寫df2
每次迭代中的值。在回圈外創建一個空串列,附加 value_counts 的值,然后從該串列創建一個 DF 并輸出它。
import pandas as pd
df = pd.read_csv("hcp.csv")
value_counts_list = []
for col in df:
value_counts_list.append(df[col].value_counts())
print(df2)
pd.DataFrame(value_counts_list).to_csv("new_hcp.csv")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/505279.html