Đây là mã của tôi:
import openpyxl, pprint
wb = openpyxl.load_workbook['/Users/sarahporgess/Desktop/SSA1.xlsx']
sheet = wb.get_sheet_by_name['Sheet1']
data = {}
for row in range[1,sheet.max_row+1]:
date = sheet['A' +str[row]].value
gamma = sheet['B' +str[row]].value
theta = sheet['C' +str[row]].value
ratio = float[gamma]/float[theta]
resultFile = open['SSA2.csv' , 'w']
resultFile.write[ pprint.pformat[date]]
resultFile.write[ pprint.pformat[gamma]]
resultFile.write[ pprint.pformat[theta]]
resultFile.write[ pprint.pformat[ratio]]
print[ratio]
sheet['D1']=ratio
resultFile.close[]
print['Done.']
Tệp Excel hiện tại của tôi hiện có ba cột: "Ngày, gamma, theta". Tôi muốn thêm một cột thứ tư gọi là "tỷ lệ" là tỷ lệ gamma/theta. Làm cách nào để thêm một cột khác vào tài liệu Excel hiện có bằng Python? Mã này tạo ra một tài liệu Excel với 4 yếu tố được in thành một ô
Martineau
Huy hiệu vàng 116K2525 gold badges161 silver badges288 bronze badges
Đã hỏi ngày 28 tháng 6 năm 2017 lúc 19:58Jun 28, 2017 at 19:58
1
Dễ sử dụng gói gấu trúc dễ dàng hơn
import pandas as pd
file_name = #Path to your file
df = pd.read_excel[file_name] #Read Excel file as a DataFrame
df['Ratio'] = df['Gamma']/df['Theta']
#Display top 5 rows to check if everything looks good
df.head[5]
#To save it back as Excel
df.to_excel["path to save"] #Write DateFrame back as Excel file
Đã trả lời ngày 28 tháng 6 năm 2017 lúc 20:12Jun 28, 2017 at 20:12
3
Từ câu hỏi cập nhật của bạn, tôi đã viết lại câu trả lời của tôi.
Bạn không cần phải sử dụng một thư viện khác để thực hiện những gì bạn đang cố gắng làm. Đây là một lựa chọn khác để hoàn thành những gì bạn muốn.
import openpyxl
import pprint
wb = openpyxl.load_workbook['/Users/sarahporgess/Desktop/SSA1.xlsx']
sheet = wb.active
# you may also use the wb.get_sheet_by_name['Sheet1'] method here.
data = {}
for row in range[1,sheet.max_row+1]:
date = sheet.cell[row = row, column = 1] # use .cell[] to get values of cells
gamma = sheet.cell[row = row, column = 2]
theta = sheet.cell[row = row, column = 3]
print[date, gamma, theta]
ratio = float[gamma]/float[theta]
new_wb = openpyxl.Workbook[] # creates new workbook to be saved as results
# you can also open a wookbook here instead but I wrote it to create a results workbook as I didnt already have one.
new_sheet = new_wb.active
new_sheet['A1'] = pprint.pformat[date]
new_sheet['B1'] = pprint.pformat[gamma]
new_sheet['C1'] = pprint.pformat[theta]
new_sheet['D1'] = pprint.pformat[ratio]
print[ratio]
# save new workbook as SSA2
new_wb.save['/Users/sarahporgess/Desktop/SSA2.xlsx']
print['Done.']
Đã trả lời ngày 28 tháng 6 năm 2017 lúc 20:08Jun 28, 2017 at 20:08
Mike - Smtmike - SMTMike - SMT
15.1k4 Huy hiệu vàng34 Huy hiệu bạc68 Huy hiệu Đồng4 gold badges34 silver badges68 bronze badges
2
Không rõ từ mã của bạn cho dù bạn muốn in kết quả hoặc chỉnh sửa tệp hiện có. Nếu bạn đang chỉnh sửa tệp Excel thì bạn có thể muốn tạo một công thức và để Excel thực hiện tính toán cho bạn.
import openpyxl
wb = openpyxl.load_workbook['/Users/sarahporgess/Desktop/SSA1.xlsx']
sheet = wb['Sheet1']
for row in sheet:
date, gamma, theta = row
ratio = theta.offset[column=1]
ratio.value = "=B{0}/C{0}".format[theta.row] # if you want the formula
# ratio.value = gamma/theta # if you just want the calculation
wb.save[…]
Đã trả lời ngày 29 tháng 6 năm 2017 lúc 9:58Jun 29, 2017 at 9:58
Charlie Clarkcharlie ClarkCharlie Clark
17,5K4 Huy hiệu vàng46 Huy hiệu bạc53 Huy hiệu Đồng4 gold badges46 silver badges53 bronze badges
8
Viết một chương trình gấu trúc để chèn một cột ở vị trí thứ sáu của bảng excel nói trên và lấp đầy nó bằng các giá trị NAN. Chuyển đến dữ liệu Excel Giải pháp mẫu: Mã Python: Đầu ra mẫu: Dữ liệu Excel: coalpublic2013.xlsx: Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn [và nhận xét] thông qua Disqus. Trước đó: Viết một chương trình gấu trúc để tìm tổng số, trung bình, tối đa, giá trị tối thiểu của 'sản xuất [tấn ngắn]' của tập tin CoalPublic2013.xlsx. Hai mươi hàng vào một bản dữ liệu gấu trúc. Write a Pandas program to find the sum, mean, max, min value of 'Production [short tons]' column of coalpublic2013.xlsx file.Gấu trúc: Bài tập thể dục Excel-5 với giải pháp
import pandas as pd
import numpy as np
df = pd.read_excel['E:\coalpublic2013.xlsx']
df.insert[3, "column1", np.nan]
print[df.head]
Year MSHA ID Mine_Name column1 Production \
0 2013 103381 Tacoa Highwall Miner NaN 56004 .....
1 2013 103404 Reid School Mine NaN 28807 .....
2 2013 100759 North River #1 Underground Min NaN 1440115 .....
3 2013 103246 Bear Creek NaN 87587 .....
4 2013 103451 Knight Mine NaN 147499 .....
5 2013 103433 Crane Central Mine NaN 69339 .....
6 2013 100329 Concord Mine NaN 0 .....
7 2013 100851 Oak Grove Mine NaN 2269014 .....
8 2013 102901 Shoal Creek Mine NaN 0 .....
9 2013 102901 Shoal Creek Mine NaN 1453024 .....
10 2013 103180 Sloan Mountain Mine NaN 327780 .....
11 2013 103182 Fishtrap NaN 175058 .....
12 2013 103285 Narley Mine NaN 154861 .....
13 2013 103332 Powhatan Mine NaN 140521 .....
14 2013 103375 Johnson Mine NaN 580 .....
15 2013 103419 Maxine-Pratt Mine NaN 125824 .....
16 2013 103432 Skelton Creek NaN 8252 .....
17 2013 103437 Black Warrior Mine No 1 NaN 145924 .....
18 2013 102976 Piney Woods Preparation Plant NaN 0 .....
19 2013 102976 Piney Woods Preparation Plant NaN 0 .....
20 2013 103380 Calera NaN 0 .....
21 2013 103380 Calera NaN 0 .....
22 2013 103422 Clark No 1 Mine NaN 122727 .....
23 2013 103467 Helena Surface Mine NaN 59664 .....
24 2013 101247 No 4 Mine NaN 2622528 .....
25 2013 101401 No 7 Mine NaN 5405412 .....
26 2013 103172 Searles Mine No. 2, 3, 4, 5, 6 NaN 258078 .....
27 2013 103179 Fleetwood Mine No 1 NaN 75937 .....
28 2013 103303 Shannon Mine NaN 317491 .....
29 2013 103323 Deerlick Mine NaN 133452 .....
30 2013 103364 Brc Alabama No. 7 Llc NaN 0 .....
31 2013 103436 Swann's Crossing NaN 137511 .....
32 2013 100347 Choctaw Mine NaN 537429 .....
33 2013 101362 Manchester Mine NaN 219457 .....
34 2013 102996 Jap Creek Mine NaN 375715 .....
35 2013 103155 Corinth Prep Plant NaN 0 .....
36 2013 103155 Corinth Prep Plant NaN 0 .....
37 2013 103195 Mccollum/Sparks Branch Mine NaN 71910 .....
38 2013 103342 Reese's Branch Mine NaN 263888 .....
39 2013 103370 Cresent Valley Mine NaN 2860 .....
40 2013 103372 Cane Creek Mine NaN 66258 .....
41 2013 103376 Town Creek NaN 299167 .....
42 2013 103389 Carbon Hill Mine NaN 76241 .....
43 2013 103410 Coal Valley Mine NaN 407841 .....
44 2013 103423 Dutton Hill Mine NaN 37275 .....
45 2013 1519322 Ghm #25 NaN 25054 .....
46 2013 103321 Poplar Springs NaN 189370 .....
47 2013 103358 Old Union NaN 284563 .....
48 2013 5000030 Usibelli NaN 1631584 .....
49 2013 201195 Kayenta Mine NaN 7602722 .....
Next: Write a Pandas program to import given excel data [coalpublic2013.xlsx ] skipping first twenty rows into a
Pandas dataframe.
Mức độ khó của bài tập này là gì?
Kiểm tra kỹ năng lập trình của bạn với bài kiểm tra của W3Resource.
Python: Lời khuyên trong ngày
Sử dụng toàn bộ danh sách để rút ngắn cho các vòng lặp:
x = [1, 2, 3, 4, 5] result = [] for idx in range[len[x]]: result.append[x[idx] * 2] result
Output:
[2, 4, 6, 8, 10]
[[element * 2] for element in x]
Output:
[2, 4, 6, 8, 10]
- Bài tập: Top 16 chủ đề phổ biến nhất hàng tuần
- Bài tập SQL, Thực hành, Giải pháp - Tham gia
- Bài tập SQL, Thực hành, Giải pháp - Quan sát phụ
- JavaScript Basic - Bài tập, Thực hành, Giải pháp
- Java Array: Bài tập, Thực hành, Giải pháp
- C Bài tập lập trình, Thực hành, Giải pháp: Tuyên bố có điều kiện
- Cơ sở dữ liệu nhân sự - Sắp xếp bộ lọc: Bài tập, Thực hành, Giải pháp
- C Bài tập lập trình, Thực hành, Giải pháp: Chuỗi
- Các loại dữ liệu Python: Từ điển - Bài tập, Thực hành, Giải pháp
- Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
- Mảng C ++: Bài tập, Thực hành, Giải pháp
- Báo cáo và vòng lặp có điều kiện JavaScript - Bài tập, Thực hành, Giải pháp
- Thuật toán cơ bản C# Sharp: Bài tập, Thực hành, Giải pháp
- Python Lambda - Bài tập, Thực hành, Giải pháp
- Python Pandas DataFrame: Bài tập, Thực hành, Giải pháp
- Công cụ chuyển đổi
- JavaScript: HTML Mẫu xác thực