我想创建一个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的新手,对这个社区真的很感谢
这应该可以解决问题:
'\n'.join(df['Ticker'].astype(str).values)
您可以为此使用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.")