반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Tkinter
- dataframe
- Mac
- SQL
- Google Excel
- gas
- Kotlin
- 파이썬
- list
- math
- Google Spreadsheet
- matplotlib
- Apache
- string
- Redshift
- PySpark
- Java
- GIT
- PANDAS
- django
- google apps script
- Python
- PostgreSQL
- Excel
- Github
- hive
- numpy
- c#
- array
Archives
- Today
- Total
달나라 노트
Python Pandas & openpyxl : cell object (cell 객체) 본문
Python/Python Pandas
Python Pandas & openpyxl : cell object (cell 객체)
CosmosProject 2024. 2. 26. 22:37728x90
반응형
openpyxl의 cell 객체를 이용하면 특정 cell의 다양한 정보를 가져올 수 있습니다.
import pandas as pd
dict_test = {
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'c', 'd', 'e'],
'col3': [1234, 0.27383720, 39372, None, 102947291.293472],
'col4': [0.9, 0.5238, 0.13, 0.0028, 1024.29278],
}
df_test = pd.DataFrame(dict_test)
xlsx_writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
df_test.to_excel(xlsx_writer, sheet_name='test', index=False)
worksheet = xlsx_writer.sheets['test']
tup_cells = worksheet['C:C'] # C:C 범위에 있는 Cell 참조 (단, data set이 있는 범위의 Cell만 참조)
print(tup_cells) # 그 결과는 tuple에 Cell 객체가 담겨있는 형태
for cell in tup_cells:
print('Cell Row =', cell.row) # Cell의 row number
print('Cell Column =', cell.column) # Cell의 Column number
print('Cell Coordinate =', cell.coordinate) # Cell의 Coordinate
print('Cell Value =', cell.value) # Cell에 입력된 값
print('Cell Style =', cell.style) # Cell의 style
print('')
xlsx_writer.close()
-- Result
(<Cell 'test'.C1>, <Cell 'test'.C2>, <Cell 'test'.C3>, <Cell 'test'.C4>, <Cell 'test'.C5>, <Cell 'test'.C6>)
Cell Row = 1
Cell Column = 3
Cell Coordinate = C1
Cell Value = col3
Cell Style = Normal
Cell Row = 2
Cell Column = 3
Cell Coordinate = C2
Cell Value = 1234.0
Cell Style = Normal
Cell Row = 3
Cell Column = 3
Cell Coordinate = C3
Cell Value = 0.2738372
Cell Style = Normal
Cell Row = 4
Cell Column = 3
Cell Coordinate = C4
Cell Value = 39372.0
Cell Style = Normal
Cell Row = 5
Cell Column = 3
Cell Coordinate = C5
Cell Value =
Cell Style = Normal
Cell Row = 6
Cell Column = 3
Cell Coordinate = C6
Cell Value = 102947291.293472
Cell Style = Normal
결과를 보면 Column number = 3 즉, Column C에 존재하는 cell들의 객체가 얻어진 것을 볼 수 있습니다.
import pandas as pd
dict_test = {
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'c', 'd', 'e'],
'col3': [1234, 0.27383720, 39372, None, 102947291.293472],
'col4': [0.9, 0.5238, 0.13, 0.0028, 1024.29278],
}
df_test = pd.DataFrame(dict_test)
xlsx_writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
df_test.to_excel(xlsx_writer, sheet_name='test', index=False)
worksheet = xlsx_writer.sheets['test']
cell = worksheet['B3'] # B3 cell의 객체를 가져옴
print('Cell Row =', cell.row) # Cell의 row number
print('Cell Column =', cell.column) # Cell의 Column number
print('Cell Coordinate =', cell.coordinate) # Cell의 Coordinate
print('Cell Value =', cell.value) # Cell에 입력된 값
print('Cell Style =', cell.style) # Cell의 style
xlsx_writer.close()
-- Result
Cell Row = 3
Cell Column = 2
Cell Coordinate = B3
Cell Value = b
Cell Style = Normal
위처럼 worksheet로부터 특정 cell 하나의 객체를 바로 얻어올 수도 있습니다.
어떤 row 전체에 대한 참조를 할 수도 있습니다.
import pandas as pd
dict_test = {
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'c', 'd', 'e'],
'col3': [1234, 0.27383720, 39372, None, 102947291.293472],
'col4': [0.9, 0.5238, 0.13, 0.0028, 1024.29278],
}
df_test = pd.DataFrame(dict_test)
xlsx_writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
df_test.to_excel(xlsx_writer, sheet_name='test', index=False)
worksheet = xlsx_writer.sheets['test']
tup_cells = worksheet['1:1'] # 1:1 범위에 있는 Cell 참조 (단, dataset이 있는 범위의 Cell만 참조)
print(tup_cells) # 그 결과는 tuple에 Cell 객체가 담겨있는 형태
for cell in tup_cells:
print('Cell Row =', cell.row) # Cell의 row number
print('Cell Column =', cell.column) # Cell의 Column number
print('Cell Coordinate =', cell.coordinate) # Cell의 Coordinate
print('Cell Value =', cell.value) # Cell에 입력된 값
print('Cell Style =', cell.style) # Cell의 style
print('')
xlsx_writer.close()
-- Result
(<Cell 'test'.A1>, <Cell 'test'.B1>, <Cell 'test'.C1>, <Cell 'test'.D1>)
Cell Row = 1
Cell Column = 1
Cell Coordinate = A1
Cell Value = col1
Cell Style = Normal
Cell Row = 1
Cell Column = 2
Cell Coordinate = B1
Cell Value = col2
Cell Style = Normal
Cell Row = 1
Cell Column = 3
Cell Coordinate = C1
Cell Value = col3
Cell Style = Normal
Cell Row = 1
Cell Column = 4
Cell Coordinate = D1
Cell Value = col4
Cell Style = Normal
보면 row number = 1인 영역 전체에 데이터가 있는 cell들이 얻어진 것을 볼 수 있습니다.
728x90
반응형
'Python > Python Pandas' 카테고리의 다른 글
Comments