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

时间:2020-03-13 16:01:18

标签: python pandas

我想创建一个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的我的股票行情栏带到一个大字符串中,在每个行情指示器之间都有一个\ n或每个行情指示器都在换行符上吗?

非常感谢,我是python的新人,真的感谢这个社区

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

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

答案 1 :(得分:1)

您可以为此使用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.")
相关问题