달나라 노트

Python Pandas & openpyxl : columns, rows (column에 대한 객체 얻어오기, row에 대한 객체 얻어오기) 본문

Python/Python Pandas

Python Pandas & openpyxl : columns, rows (column에 대한 객체 얻어오기, row에 대한 객체 얻어오기)

CosmosProject 2024. 2. 26. 23:15
728x90
반응형

 

 

 

worksheet 객체의 columns 속성을 이용하면

현재 담겨진 dataset의 모든 column에 대한 객체를 얻어옵니다.

 

각각의 column 객체는 해당 column에 존재하는 cell 객체들이 tuple에 담겨있는 형태로 존재합니다.

 

import pandas as pd


dict_test = {
    'col1': [1, 2, 3, 4, 5],
    'col2': ['apple', 'banana', 'cloud', 'drizzle', 'electron'],
    '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']
columns = worksheet.columns  # column 객체 얻어옴
print(columns)  # column 객체 확인

for col in columns:  # column 객체는 각 column에 있는 cell 객체의 집합이기 때문에 for loop 사용
    print(col)  # 각 column 객체에는 해당 column에 존재하는 cell 객체들이 담겨있음
    for cell in col:
        print(cell)
    print('')

xlsx_writer.close()



-- Result
<generator object Worksheet._cells_by_col at 0x7fe5db799690>

(<Cell 'test'.A1>, <Cell 'test'.A2>, <Cell 'test'.A3>, <Cell 'test'.A4>, <Cell 'test'.A5>, <Cell 'test'.A6>)
<Cell 'test'.A1>
<Cell 'test'.A2>
<Cell 'test'.A3>
<Cell 'test'.A4>
<Cell 'test'.A5>
<Cell 'test'.A6>

(<Cell 'test'.B1>, <Cell 'test'.B2>, <Cell 'test'.B3>, <Cell 'test'.B4>, <Cell 'test'.B5>, <Cell 'test'.B6>)
<Cell 'test'.B1>
<Cell 'test'.B2>
<Cell 'test'.B3>
<Cell 'test'.B4>
<Cell 'test'.B5>
<Cell 'test'.B6>

(<Cell 'test'.C1>, <Cell 'test'.C2>, <Cell 'test'.C3>, <Cell 'test'.C4>, <Cell 'test'.C5>, <Cell 'test'.C6>)
<Cell 'test'.C1>
<Cell 'test'.C2>
<Cell 'test'.C3>
<Cell 'test'.C4>
<Cell 'test'.C5>
<Cell 'test'.C6>

(<Cell 'test'.D1>, <Cell 'test'.D2>, <Cell 'test'.D3>, <Cell 'test'.D4>, <Cell 'test'.D5>, <Cell 'test'.D6>)
<Cell 'test'.D1>
<Cell 'test'.D2>
<Cell 'test'.D3>
<Cell 'test'.D4>
<Cell 'test'.D5>
<Cell 'test'.D6>

 

 

 

 

 

 

반대로 worksheet 객체의 rows 속성을 이용하면

현재 담겨진 dataset의 모든 rows에 대한 객체를 얻어옵니다.

 

각각의 row 객체는 해당 row에 존재하는 cell 객체들이 tuple에 담겨있는 형태로 존재합니다.

 

 

import pandas as pd


dict_test = {
    'col1': [1, 2, 3, 4, 5],
    'col2': ['apple', 'banana', 'cloud', 'drizzle', 'electron'],
    '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']
columns = worksheet.rows  # row 객체 얻어옴
print(columns)  # row 객체 확인

for col in columns:  # row 객체는 각 row 있는 cell 객체의 집합이기 때문에 for loop 사용
    print(col)  # 각 row 객체에는 해당 row에 존재하는 cell 객체들이 담겨있음
    for cell in col:
        print(cell)
    print('')

xlsx_writer.close()



-- Result
<generator object Worksheet._cells_by_row at 0x7f9e75da1690>

(<Cell 'test'.A1>, <Cell 'test'.B1>, <Cell 'test'.C1>, <Cell 'test'.D1>)
<Cell 'test'.A1>
<Cell 'test'.B1>
<Cell 'test'.C1>
<Cell 'test'.D1>

(<Cell 'test'.A2>, <Cell 'test'.B2>, <Cell 'test'.C2>, <Cell 'test'.D2>)
<Cell 'test'.A2>
<Cell 'test'.B2>
<Cell 'test'.C2>
<Cell 'test'.D2>

(<Cell 'test'.A3>, <Cell 'test'.B3>, <Cell 'test'.C3>, <Cell 'test'.D3>)
<Cell 'test'.A3>
<Cell 'test'.B3>
<Cell 'test'.C3>
<Cell 'test'.D3>

(<Cell 'test'.A4>, <Cell 'test'.B4>, <Cell 'test'.C4>, <Cell 'test'.D4>)
<Cell 'test'.A4>
<Cell 'test'.B4>
<Cell 'test'.C4>
<Cell 'test'.D4>

(<Cell 'test'.A5>, <Cell 'test'.B5>, <Cell 'test'.C5>, <Cell 'test'.D5>)
<Cell 'test'.A5>
<Cell 'test'.B5>
<Cell 'test'.C5>
<Cell 'test'.D5>

(<Cell 'test'.A6>, <Cell 'test'.B6>, <Cell 'test'.C6>, <Cell 'test'.D6>)
<Cell 'test'.A6>
<Cell 'test'.B6>
<Cell 'test'.C6>
<Cell 'test'.D6>

 

 

 

 

 

728x90
반응형
Comments