将熊猫专栏转换为以换行符分隔的文本文件

问题描述 投票:0回答:2

我想创建一个txt文件,其中每一行都是所谓的“股票代码”(=股票符号)。第一步,我通过Wikipedia api下载了我想要的所有股票代码:

import pandas as pd
import wikipedia as wp

html1 = wp.page("List of S&P 500 companies").html().encode("UTF-8")
df = pd.read_html(html1,header =0)[0]

df = df.drop(['SEC filings','CIK', 'Headquarters Location', 'Date first added', 'Founded'], axis = 1)
df.columns = df.columns.str.replace('Symbol', 'Ticker')

[第二,我想创建一个txt文件,如上所述,其中包含df中“ Ticker”列的所有代码名称。为此,我可能必须进行类似以下操作:

f = open("tickertest.txt","w+")
f.write("MMM\nABT\n...etc.")              
f.close() 

现在是我的问题:没有人知道如何将df的Ticker列带入一个大字符串,其中每个代码之间都有一个\ n或每个代码都在换行符上吗?

非常感谢,我是python的新手,对这个社区真的很感谢

python pandas
2个回答
0
投票

这应该可以解决问题:

'\n'.join(df['Ticker'].astype(str).values)

0
投票

您可以为此使用to_csv。

df.to_csv("test.txt", columns=["Ticker"], header=False, index=False)

这提供了灵活性,可以在将来的某个时间包括其他列,列名和索引值(您需要进行一些侦查,还是万一您的老板要求更多信息的情况)。您甚至可以更改分隔符。这将是一个简单的修改(例如,明显的更改):

df.to_csv("test.txt", columns=["Ticker", "Symbol",], header=True, index=True, sep="\t")

我认为这种方法优于jfaccioni的答案是灵活性和易适应性。这也使您不必显式打开文件。但是,如果仍要显式打开文件,则应考虑使用“ with”,当您脱离当前缩进时,它将自动关闭缓冲区。例如

with open("test.txt", "w") as fid:
    fid.write("MMM\nABT\n...etc.")
© www.soinside.com 2019 - 2024. All rights reserved.