我在表中有以下資料需要在執行累積總和后將表中的整個資料讀取到Pandas和平均需要生成 csv 檔案 [帶有標題的逗號分隔檔案]
NAME,AGE,MARKS
A1,12,40
B1,13,54
C1,15,67
D1,11,41
E1,16,59
F1,10,60
我試著寫被卡住了
import cx_Oracle
import pandas as pd
try :
sq='select * from emp'
conn=cx_Oracle.cpnnect(myconnection)
fd=pd.read_sql(sql,con=conn)
fd['CUM_SUM'] = fd['MARKS'].cumsum()
fd['AVG'] = fd['MARKS'].expanding().mean()
fd.to_csv('file.csv', index=False)
except Exception as er:
print(er)
帶有標題的 csv 檔案中的預期輸出
NAME,AGE,MARKS,CUM_SUM,AVG
A1,12,40,40,40
B1,13,54,94,47
C1,15,67,161,53.66
D1,11,41,202,50.5
E1,16,59,261,43.5
F1,10,60,321,45.85
當我做 print(fd) 時,它給出以下輸出
NAME ..CUM,AVG
A1,..,40,40
B1,..,94,47
C1,..,161,53.66
D1,..,202,50.5
E1,..,261,43.5
F1,..,321,45.85
uj5u.com熱心網友回復:
import sqlalchemy
import psycopg2
conn = 'postgresql psycopg2://DB_USER:DB_PASS@DB_HOST:5432/DB_NAME' # 5432 = DB_PORT
# Connect to DB
engine = sqlalchemy.create_engine(conn)
connect = engine.connect()
inspector = sqlalchemy.inspect(engine)
# inspector.get_table_names()
# Read data from table_name and add to data-frame
df = pd.read_sql("select * from table_name", connect)
# df.head(10)
# calculation
# Write to csv with headers and comma delimiter
df.to_csv('filename.csv', sep=',', header=True)
.to_csv 的檔案:https ://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
uj5u.com熱心網友回復:
似乎您正在努力從表結果創建 csv 檔案
在您的表中只有 3 列,所以在您的查詢中指定列名而不是'*'.
和 CUM 和 AVG,你從基于 MARKS 列的查詢結果中動態使用 Pandas 函式和你想要在 csv 檔案中獲取它,如果這是你正在尋找的要求,那么下面的代碼將適合你
如果拋出任何錯誤讓我知道
可能這段代碼對你有用
# Importing modules
import cx_Oracle
import pandas as pd
#Connection and Query taken into variable
connec='Username/Password@Hostname:Port/Servicename'
yourQuery='select NAME,AGE,MARKS from emp'
try:
your_connection=cx_Oracle.connect(connec)
fpd=pd.read_sql(yourQuery,your_connection)
#cumsum : calculate the sum of table marks
fpd['CUMULATIVE']=fpd['MARKS'].cumsum()
#expanding().mean() : get you average
fpd['AVG']=fpd['MARKS'].expanding().mean()
#Writing output to csv file
fpd.to_csv('/path/emp.csv',index=False)
except Exception as er:
print(er)
注意: 如果表中沒有資料,則將創建只有HEADER作為記錄的 csv 檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/313613.html
上一篇:在R中使用csv的對數刻度直方圖
下一篇:如何使用熊貓一次計算多列中的值
