Python: จะอ่านสเปรดชีตหลายรายการในรูปแบบใหม่ใน CSV ได้อย่างไร

ฉัน (ผู้มาใหม่) พยายามอ่านจากเอกสาร Excel หลายตารางและอ่านในรูปแบบใหม่ในรูปแบบ csv เดียว ใน csv ฉันต้องการฟิลด์ต่อไปนี้: ปี (จากตัวแปรโกลบอล), เดือน (จากตัวแปรโกลบอล), ทางออก (ชื่อของแผ่นตาราง); rowvalue [a] (สตริงเพื่ออธิบายแถว), ค่าคอลัมน์ [1] (สตริงเพื่ออธิบาย cloumn), ค่าเซลล์ (float)

จากนั้นจะต้องป้อนค่าที่เกี่ยวข้องในสิ่งเหล่านี้

จากตารางที่เกี่ยวข้อง ต้องอ่านเฉพาะ RowNum 6 ถึง 89 เท่านั้น

#BWA-Reader
#read the excel spreadsheet with all sheets
#Python 3.6

Importe
import openpyxl
import xlrd
from PIL import Image as PILImage
import csv

# year value of the Business analysis
year = "2018"

# month value of the Business analysis
month = "11"

# .xlxs path
wb = openpyxl.load_workbook("BWA Zusammenfassung 18-11.xlsx")
print("Found your Spreadsheet")
# List of sheets
sheets = wb.get_sheet_names()

# remove unneccessary sheets
list_to_remove = ("P",'APn','AP')
sheets_clean = list(set(sheets).difference(set(list_to_remove)))
print("sheets to load: " + str(sheets_clean))

# for loop for every sheet based on sheets_clean
for sheet in sheets_clean:

# for loop to build list for row and cell value
    all_rows = []
    for row in wb[sheet].rows:
        current_row = []
        for cell in row:
            current_row.append (cell.value)
        all_rows.append(current_row)
        print(all_rows)
# i´m stucked -.-´

ฉันคาดหวังผลลัพธ์เช่น:

2018;11;Oldenburg;total_sales;monthly;145840.00

แผ่นงานทั้งหมดในไฟล์ CSV เดียว

ขอบคุณมากสำหรับทุกแนวคิดในการแก้ปัญหาโครงการของฉัน!


person Dominik Keller    schedule 02.01.2019    source แหล่งที่มา
comment
ปัจจุบันมีผลผลิตอะไรบ้าง?   -  person jorijnsmit    schedule 03.01.2019
comment
เฮ้ ฉันได้รับรายการแต่ละแถวจากแต่ละตาราง นี่คือที่ฉันติดอยู่ ฉันไม่พบคำตอบที่ถูกต้องในการแปลงค่าของร้อยรายการเป็นรูปแบบ csv ที่ต้องการ: [142, 'Fremdmieten', 165, None, 0.1, 0, 0, 0, None, 0, 1448.7, None, 0.07 , 0.03388769028363356, 0, 0, 0, ไม่มี, 0, ไม่มี, 165, ไม่มี, 0.01]   -  person Dominik Keller    schedule 03.01.2019
comment
ค่าต่างๆ ย่อมาจาก: id,id_name,monthly_values,empty,percentage_monthly_values,monthly_budget,perecentage_monthly_budget,empty, collect_value,empty,percentage_ Collectible_value,benchmark, allowance_budget_value,percentage_ allowance_budget, allowance_lastyear_value, ว่าง, เปอร์เซ็นต์_ สะสม _lastyear_total_value, ว่าง, เปอร์เซ็นต์ _lastyear_total_value   -  person Dominik Keller    schedule 03.01.2019
comment
ใช้โมดูล csv และเขียนบรรทัดเมื่อคุณอ่านแถวจากไฟล์ Excel   -  person Charlie Clark    schedule 03.01.2019
comment
เฮ้ ชาร์ลี บางทีฉันอาจทำตัวงี่เง่ามาก แต่คุณช่วยบอกรหัสให้ฉันหน่อยได้ไหม นี่จะช่วยแก้ปัญหาหนึ่งของฉันระหว่างทางไปสู่การแก้ปัญหา   -  person Dominik Keller    schedule 03.01.2019


คำตอบ (1)


คำตอบที่สมบูรณ์สำหรับคำถามนี้ขึ้นอยู่กับชุดข้อมูลจริงเป็นอย่างมาก

ฉันอยากจะแนะนำให้พิจารณาฟังก์ชัน read_excel() ของ pandas ซึ่งจะทำให้แยกแถว/คอลัมน์/เซลล์ที่จำเป็นได้ง่ายขึ้นมาก โดยไม่จำเป็นต้องวนซ้ำแผ่นงานทั้งหมด

คุณอาจจำเป็นต้องมีบทเรียนเกี่ยวกับแพนด้าเพื่อที่จะไปถึงจุดนั้น แต่เมื่อพิจารณาจากสิ่งที่คุณพยายามทำ แพนด้าอาจเป็นทักษะที่มีประโยชน์ในอนาคต!

person jorijnsmit    schedule 04.01.2019