使用pandas(Python)将整个列的文本换行

我想用pandas来包装一整列。 我已经设置了列的宽度,现在我只需要包装整个列,因为它们都在1行。

我用各种不同的答案进行search并不是直截了当的。 我不需要编辑列的宽度,我只是想将单元格中的文本包装成与我一样点击“包装文本”来突出显示列的单元格。 但我想用python脚本来做,所以我想用pandas来实现。

所以基本上这个以前和这个样子看起来是一样的 。 但是我想通过pandas做到这一点,而不是通过点击包装文本手动。 而我想把这个换行应用到整个列中,而不仅仅是一个单元格。

您可以使用解决scheme修改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()