如何在Excel中用“ \ n”字符串替换换行符

时间:2019-10-10 13:50:41

标签: python excel pandas dataframe

我有一个Excel,我需要将其转换为特定格式以写入CSV文件。我面临的问题之一是换行符具有单元格值。

例如:

Hi, This is Me. This is a standard Description. This is what I do.

我想用字符串“ \ n”替换新行,如下所示。 例如:

Hi, This is Me.\n This is a standard Description.\n This is what I do.

我无法这样做。

我尝试用\ n替换\ n这是行不通的。但是\ n带有空字符串或任何其他有效字符都可以。

import pandas as pd
my_sheet = 'Sheet1' # name of the sheet in the excel file
file_name = 'bulkload_format.xlsx' # name of my excel file
df = pd.read_excel(file_name, sheet_name = my_sheet)
cols = [16] # i want data in column 16 alone, this has \n characters that needs replacing
df = df[df.columns[cols]]
df = df.replace('\n','\\n', regex=True) #this does not work
for index, row in df.iterrows():
    print(index, row[0])
export_csv = df.to_csv('out.csv', index = None, header=True, encoding='utf-8') #it directly write new lines in the CSV

\ n文字需要替换为\ n字符串。

3 个答案:

答案 0 :(得分:1)

这不是最有效的解决方案,希望它会起作用, 让您将列名设为text,将数据框设为df

df["temp"] = df["text"].apply(lambda x: x.split('\n'))
df["text"] = df["temp"].apply(lambda x: ' \\n '.join(x))
df.drop(["temp"])

答案 1 :(得分:0)

与@Rajith Thennakoon的解决方案相比,使用pandas的{​​{3}}功能的更快解决方案是:

df['name'] = df['name'].str.replace('\n', '\\n')
# 1000 loops, best of 3: 663 µs per loop

相比

df['temp'] = df['name'].apply(lambda x: x.split('\n'))
df['name'] = df['temp'].apply(lambda x: ' \\n '.join(x))
df.drop(columns=['temp'])
# 1000 loops, best of 3: 1.98 ms per loop

答案 2 :(得分:0)

好吧,这绝对不是最好的解决方案,而是一个非常简单的解决方案。 如果您的文本位于单元格 A1A2A3 中,则可以使用 b1 中的单元格和以下公式进行制作:

=a1&"\n"&a2&"\n"&a3&"\n" ...