如何在python中将csv文件行拆分为列?

2024-04-23 16:37:00 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,我对python还不熟悉。我有一个csv文件,从googletrends获取数据并写入该文件。但是,输出都写入同一列。我要A栏的日期,B栏的比特币,C栏的Cyptocurrency等等。我真的在为这个简单的任务而挣扎。有人能帮忙吗?谢谢。你知道吗

下面是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')

Tags: 文件csvfalsedftimegoogleusernamecrypto
3条回答

首先,看一看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只是简单地使用格式化使其看起来更漂亮,而选项2使用PrettyTable给出漂亮且格式化的答案。您可以找到漂亮的表文档here

选项1来了这个previous post。你所要做的就是玩数字,使间距看起来足够好,让你高兴,当然,改变文件名,以匹配您的csv文件。你知道吗

方案1

您可以使用格式左对齐您的输出。例如

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

选项2我可以从这里找到这些信息,Python Pretty Table

本页提供了许多解决这个问题的方法。包括使用from_csv()函数的一种非常简单的方法,该函数可以通过使用from prettytable import from_csv从PrettyTable导入。请看下面的示例以获得更好的理解。你知道吗

示例: 数据.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      |
+     -+   +      +        -+

请让我知道,如果这是有益的留下评论或投一票,谢谢!你知道吗

给你。您需要将熊猫加载到数据帧中。你知道吗

import pandas as pd
dataframe= pd.read_csv('Bitcoin.csv',delimiter=r"\s+")
dataframe

enter image description here

相关问题 更多 >