import csv
f = csv.reader(open('lmt.csv','r')) # open input file for reading
Date, Open, Hihh, mLow, Close, Volume = zip(*f) #s plit it into separate columns
ofile = open("MYFILEnew1.csv", "wb") # output csv file
c = csv.writer(ofile)
item = Date
item2 = Volume
rows = zip(item, item)
i = 0
for row in item2:
print row
writer = csv.writer(ofile, delimiter='\t')
writer.writerow([row])
ofile.close()
以上是我到目前为止所制作的内容。
正如您在第3行中看到的,我从电子表格中提取了6列。
我想创建一个名为MYFILEnew1.csv
的.csv文件,该文件只有两列,Date
和Volume
。
我上面创建的.csv只会将Volume
列写入新的.csv文件的第一列。
您如何将Date
放入第二列?
例如
Date Open High Low Close Volume
17-Feb-16 210 212.97 209.1 212.74 1237731
是我拥有的。并且我想生成一个新的csv文件,使其具有
Date Volume
17-Feb-16 1237731
答案 0 :(得分:1)
在这里,我建议使用csv模块的csv.DictReader
对象来读取和写入文件。要阅读文件,您可以执行类似
import csv
fieldnames=('Date', 'Open', 'High', 'mLow', 'Close', 'Volume')
with open('myfilename.csv') as f:
reader = csv.DictReader(f, fieldnames=fieldnames)
除此之外,您只需要过滤掉每行不想要的密钥,同样使用csv.DictWriter
类写入导出文件。
答案 1 :(得分:1)
如果我理解你的问题是正确的,你可以很容易地使用熊猫的read_csv和to_csv(@ downvoter:你能解释你的downvote,拜托!?);您可以在 EDIT2 :
下找到问题的最终解决方案import pandas as pd
# this assumes that your file is comma separated
# if it is e.g. tab separated you should use pd.read_csv('data.csv', sep = '\t')
df = pd.read_csv('data.csv')
# select desired columns
df = df[['Date', 'Volume']]
#write to the file (tab separated)
df.to_csv('MYFILEnew1.csv', sep='\t', index=False)
因此,如果您的data.csv
文件如下所示:
Date,Open,Hihh,mLow,Close,Volume
1,5,9,13,17,21
2,6,10,14,18,22
3,7,11,15,19,23
4,8,12,16,20,24
运行上面的脚本后MYFILEnew1.csv
看起来像这样:
Date Volume
1 21
2 22
3 23
4 24
修改强>
使用您的数据(制表符分隔,存储在文件data3.csv
中):
Date Open Hihh mLow Close Volume
17-Feb-16 210 212.97 209.1 212.74 1237731
然后
import pandas as pd
df = pd.read_csv('data3.csv', sep='\t')
# select desired columns
df = df[['Date', 'Volume']]
# write to the file (tab separated)
df.to_csv('MYFILEnew1.csv', sep='\t', index=False)
给出所需的输出
Date Volume
17-Feb-16 1237731
<强> EDIT2 强>
由于输入csv文件中的标题似乎搞砸了(如评论中所述),因此必须重命名第一列。以下现在使用整个数据集对我来说很好:
import pandas as pd
df = pd.read_csv('lmt.csv', sep=',')
# get rid of the wrongly formatted column name
df.rename(columns={df.columns[0]: 'Date' }, inplace=True)
# select desired columns
df = df[['Date', 'Volume']]
# write to the file (tab separated)
df.to_csv('MYFILEnew1.csv', sep='\t', index=False)
答案 2 :(得分:1)
你是如此亲密:
androidTest