python - 将 Panda Column 转换为由换行符分隔的文本文件
问题描述
我想创建一个 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()
现在我的问题:有谁知道如何将我的 Ticker 列从 df 变成一个大字符串,在每个代码之间有一个 \n 或者每个代码都在一个新行上?
解决方案
您可以为此使用 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.")
推荐阅读
- php - 在 Laravel 中上传多个文件
- sql-server - 如何在字符串中找到N的第二个位置
- symfony - Symfony 3/4/9 路由不工作。我使用 cmd(php bin/console make:controller) 创建了控制器
- algorithm - 具有递增值的递归函数
- javascript - Javascript,简单的回调示例未按预期工作
- jenkins - Jenkins 声明性管道:文件更改或创建新分支时执行阶段
- c# - 注册到 ObservableCollection
.CollectionChanged 不知道泛型类型? - python - 如何在python中聚合元组列表?
- python - 使用字典执行对象的方法
- excel - Excel根据先进先出计算售价