我有简单的代码,它合并两个字符串系列并将结果写入文件
pd.set_option('display.max_colwidth', -1)
def merge(row):
return row['labels'] + ' ' + row['text']
fasttext_formatted = label_converted.applymap(str).apply(merge, axis=1)
with open("fasttext_tagged_input", "w") as outfile:
fasttext_formatted.to_string(outfile, index=False)
如果省略pd.set_option('display.max_colwidth', -1)
,则在写入文件时会截断字符串。我假设有一种比使用这样的(全局)显示选项更好的方法 - 你能建议吗?
(在Jupyter笔记本中运行)
答案 0 :(得分:1)
我认为你可以使用option_context
。
option_context 上下文管理器已通过顶级API公开,允许您使用给定的选项值执行代码。退出 with 块时会自动恢复选项值:
def merge(row):
return row['labels'] + ' ' + row['text']
with pd.option_context('display.max_colwidth', -1):
fasttext_formatted = label_converted.applymap(str).apply(merge, axis=1)
with open("fasttext_tagged_input", "w") as outfile:
fasttext_formatted.to_string(outfile, index=False)
也许可以改进它 - 使用DataFrame.astype
+ Series.to_csv
并省略apply
:
with pd.option_context('display.max_colwidth', -1):
#convert all columns to string
fasttext_formatted = label_converted.astype(str)
#concentrate columns to Series new
new = fasttext_formatted['labels'] + ' ' + fasttext_formatted['text']
#write Series to csv
new.to_csv(fasttext_tagged_input, index=False)