programing

판다를 사용하여 전체 칼럼의 텍스트를 포장하는 방법은 무엇입니까?

starjava 2023. 8. 20. 10:09
반응형

판다를 사용하여 전체 칼럼의 텍스트를 포장하는 방법은 무엇입니까?

저는 전체 칼럼을 포장하기 위해 판다를 사용하고 싶습니다.저는 이미 열 너비를 설정했는데, 열이 모두 한 줄로 되어 있어서 전체 열을 감싸기만 하면 됩니다.

저는 요점이 아닌 다양한 답변으로 검색했습니다.열 너비를 편집할 필요는 없습니다. "텍스트 감기"를 클릭한 후 열을 강조 표시하는 것과 동일한 작업을 수행하는 셀에서 텍스트를 래핑하고 싶습니다.하지만 저는 파이썬 스크립트를 사용하여 그것을 하고 싶기 때문에 판다를 사용하여 그것을 달성하고 싶습니다.

그래서 기본적으로.

before looks like this

그리고.

after looks like this

하지만 이 작업은 수동으로 수행하는 것이 아니라 수동으로 수행하는 텍스트를 클릭하여 수행하고 싶습니다.그리고 저는 랩을 하나의 셀이 아닌 전체 컬럼에 적용하고 싶습니다.

솔루션 수정 example_pandas_column_formats를 사용할 수 있습니다.

import string

long_text = 'aa aa ss df fff ggh ttr tre ww rr tt ww errr t ttyyy eewww rr55t e'
data = {'a':[long_text, long_text, 'a'],'c':[long_text,long_text,long_text],
        'b':[1,2,3]}       
df = pd.DataFrame(data)

#choose columns of df for wrapping
cols_for_wrap = ['a','c']


writer = pd.ExcelWriter('aaa.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)

#modifyng output by style - wrap
workbook  = writer.book
worksheet = writer.sheets['Sheet1']
wrap_format = workbook.add_format({'text_wrap': True})

#dictionary for map position of selected columns to excel headers
d = dict(zip(range(26), list(string.ascii_uppercase)))
print (d)
{0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F', 6: 'G', 7: 'H', 8: 'I', 
9: 'J', 10: 'K', 11: 'L', 12: 'M', 13: 'N', 14: 'O', 15: 'P', 16: 'Q', 
17: 'R', 18: 'S', 19: 'T', 20: 'U', 21: 'V', 22: 'W', 23: 'X', 24: 'Y', 25: 'Z'}

#get positions of columns
for col in df.columns.get_indexer(cols_for_wrap):
#map by dict to format like "A:A"     
    excel_header  =  d[col] + ':' + d[col]
    #None means not set with
    worksheet.set_column(excel_header, None, wrap_format)
    #for with = 20
    #worksheet.set_column(excel_header, 20, wrap_format)

writer.save()

언급URL : https://stackoverflow.com/questions/45985358/how-to-wrap-text-for-an-entire-column-using-pandas

반응형