我想下载和操作一个csv文件时,我打开一个历史股票报价从雅虎财经。在
简要介绍csv文件的外观:
Date,Open,High,Low,Close,Volume,Adj Close
2012-11-30,691.31,699.22,685.69,698.37,3163600,698.37
2012-11-29,687.78,693.90,682.00,691.89,2776500,691.89
2012-11-28,668.01,684.91,663.89,683.67,3042000,683.67
我想创建一个代码,删除单词“open,High,Low,Close,Volume,Adj”及其下面的数据,并添加两个新列,给我:
^{pr2}$我是一个使用Python的初学者,所以我在编写这段代码时遇到了一些困难。如果有人能帮我,我会非常感激的。在
到目前为止,这就是我所拥有的,尽管它并不是我想要的那样有效。在
def _download_url(url):
response = None
try:
response = urllib.request.urlopen(url)
content_bytes=response.read()
content_string=content_bytes.decode(encoding='utf-8')
data = io.StringIO(content_string)
mycsv=csv.reader(data)
for row in mycsv:
if row:
print(row[0],row[6])
这段代码打印出来(简短的一瞥):
Date Adj Close
2012-11-30 698.37
2012-11-29 691.89
2012-11-28 683.67
2012-11-27 670.71
这正是我想要的,但我想删除“Adj”并添加两个新列。 谢谢您!在
如果您还没有专注于自己的设计,我建议您看看pandas。这样做比以前容易多了。获取数据:
添加新列:
^{pr2}$只选择我们想要的列:
^{3}$等等。在
我碰巧是
csv
中的DictReader
类的超级粉丝,因为它省去了解析csv
s的所有猜测(没有更多的索引!)公司名称:第一个
print
输出标题行,第二个print
输出每一行(注意,DictReader
将为您使用CSV中的标题行)。{:<11} {:<8} {:<12} {:<12}
使用指定大小的整洁固定列格式化数据。在在创建
data
之前,请调整content_string
以删除“Adj”:至于添加列,您可以在
print
语句中这样做。在相关问题 更多 >
编程相关推荐