对不起,我是python的新手。我有一个csv文件,该文件从Google趋势获取数据并写入该文件。但是,所有输出均写入同一列。我想要A列上的日期和B列上的比特币以及C列上的货币。我真的在为简单的任务而苦苦挣扎。有人可以帮忙吗?谢谢。
下面是csv文件的示例。
"date Bitcoin Cryptocurrency Crypto isPartial"
"2013-10-27 5 0 0 False"
"2013-11-03 5 0 0 False"
"2013-11-10 5 0 0 False"
"2013-11-17 12 0 0 False"
"2013-11-24 14 0 0 False"
"2013-12-01 13 0 0 False"
这是我生成文件的代码
#login
pytrend = TrendReq(google_username,google_password)
pytrend = TrendReq()
#Payload
pytrend.build_payload(kw_list=['Bitcoin','Cryptocurrency','Crypto'])
#interest over time
interest_over_time_df = pytrend.interest_over_time()
df = pd.DataFrame(interest_over_time_df)
file_name = "/Users/username/Desktop/Bitcoin.csv"
df.to_csv(file_name, sep='\t')
答案 0 :(得分:0)
首先,看看python的CSV文档,这应该给您所有info and examples you need
然后,我了解到您想以CSV格式写行,并用制表符分隔,这样对您来说应该可以:
# First you create a csv.Writer
spamwriter = csv.writer(csvfile, delimiter='\t')
# You write a row as a list into the csv.writer
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
答案 1 :(得分:0)
我能够从其他帖子中找到一些想法。选项1只是使用格式化使其看起来不错,而选项2利用PrettyTable给出了很好的格式化答案。您可以找到Pretty Table文档here
选项1 来自此previous post。您所要做的就是处理数字,以使空格看起来足够好让您满意,并且当然可以更改文件名以匹配csv文件。
您可以使用format左对齐您的输出。例如,
f = open("contactlist.csv")
csv_f = csv.reader(f)
for row in csv_f:
print('{:<15} {:<15} {:<20} {:<25}'.format(*row))
输出:
Name Phone Company Email
Elon Musk 454-6723 SpaceX emusk@spacex.com
Larry Page 853-0653 Google lpage@gmail.com
Tim Cook 133-0419 Apple tcook@apple.com
Steve Ballmer 456-7893 Developers! sballmer@bluescreen.com
您可以在此处阅读有关格式的更多信息。 <
符号使文本左对齐,数字指定字符串的宽度。每个{}
都可以在冒号:
之前包含位置参数-如果省略,则字符串将按参数的顺序出现在未压缩的列表行中。
选项2 ,我可以在这里Python Pretty Table
找到此信息此页面为您提供多种解决此问题的方法。使用from_csv()
函数包含一种非常简单的方法,该函数可以通过使用from prettytable import from_csv
从PrettyTable导入。请看下面的示例以获得更好的见识。
示例: Data.csv
"City name", "Area", "Population", "Annual Rainfall"
"Adelaide", 1295, 1158259, 600.5
"Brisbane", 5905, 1857594, 1146.4
"Darwin", 112, 120900, 1714.7
"Hobart", 1357, 205556, 619.5
"Sydney", 2058, 4336374, 1214.8
"Melbourne", 1566, 3806092, 646.9
"Perth", 5386, 1554769, 869.4
Python代码:
#!/usr/bin/python3
from prettytable import from_csv
with open("data.csv", "r") as fp:
x = from_csv(fp)
print(x)
输出将类似于以下内容:
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide | 1295 | 1158259 | 600.5 |
| Brisbane | 5905 | 1857594 | 1146.4 |
| Darwin | 112 | 120900 | 1714.7 |
| Hobart | 1357 | 205556 | 619.5 |
| Sydney | 2058 | 4336374 | 1214.8 |
| Melbourne | 1566 | 3806092 | 646.9 |
| Perth | 5386 | 1554769 | 869.4 |
+-----------+------+------------+-----------------+
请留下评论或投票,让我知道这是否有益,谢谢!
答案 2 :(得分:0)