情況:
我將我的資料幀資料分組并進行了一些聚合。當我列印時,我得到了正確的資料,但是在將它寫入 CSV 檔案時,我只得到了 3 列來自 CSV 的列,這是聚合部分。
另外,我想再添加一列AVG來自偏差的命名列:
AMOUNT/CUST_NUMB
我的代碼:
final=pd.DataFrame(gg.groupby(['Phone','BID', 'P_NAME',
'STATE','VILLAGE', 'TALUK', 'DISTRICT'])
.agg({'AMOUNT':'sum', 'CUST_NUMB': 'count','DATE': 'max'}))
final.to_csv("spend.csv",index=False)
我從我的代碼中得到的輸出
問題:
所以我想用一個名為 的額外列在一個 CSV 中撰寫整個 DF:
avg_spend
請你幫我解決這個問題。
uj5u.com熱心網友回復:
你能試試這個嗎:
final.to_csv("spend.csv")
如果這不是您所期望的,請提供更多詳細資訊
uj5u.com熱心網友回復:
這是一個重現您問題的最小演示:
import pandas as pd
data = {
'Phone': ['x', 'x', 'x'],
'BID': ['x', 'x', 'x'],
'P_NAME': ['x', 'x', 'x'],
'STATE': ['x', 'x', 'x'],
'VILLAGE': ['x', 'x', 'x'],
'TALUK': ['1', '2', '1'],
'DISTRICT': ['x', 'x', 'x'],
'AMOUNT': [3, 4, 5],
'CUST_NUMB': ['12', '13', '14'],
'DATE': ['20211025', '20211025', '20211025']
}
gg = pd.DataFrame(data)
final = pd.DataFrame(gg.groupby(['Phone', 'BID', 'P_NAME',
'STATE', 'VILLAGE', 'TALUK', 'DISTRICT'])
.agg({'AMOUNT': 'sum', 'CUST_NUMB': 'count', 'DATE': 'max'}))
print(final)
# AMOUNT CUST_NUMB DATE
# Phone BID P_NAME STATE VILLAGE TALUK DISTRICT
# x x x x x 1 x 8 2 20211025
# 2 x 4 1 20211025
使用reset_index()該組轉換為列:
final = final.reset_index()
print(final)
# Phone BID P_NAME STATE VILLAGE TALUK DISTRICT AMOUNT CUST_NUMB DATE
# 0 x x x x x 1 x 8 2 20211025
# 1 x x x x x 2 x 4 1 20211025
添加新列avg_spend并寫入CSV:
final['avg_spend'] = final['AMOUNT'] / final['CUST_NUMB']
print(final)
# Phone BID P_NAME STATE ... AMOUNT CUST_NUMB DATE avg_spend
# 0 x x x x ... 8 2 20211025 4.0
# 1 x x x x ... 4 1 20211025 4.0
final.to_csv("spend.csv", index=False)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/337588.html
