Hei我正在尝试在pandas中读取csv文件,你可以download from here(euribor rate我认为你可以想象我想拥有这个文件的原因!)。该文件是一个CSV文件,但它有点奇怪的方向。如果您在Excel文件中导入它具有格式
02/01/2012,03/01/2012,04/01/2012,,,,
1w 0.652,0.626,0.606,,,,
2w,0.738,0.716,0.700,,,,
第一列的行为可达12米(但我已经为您提供了可以下载样本的链接)。我想在熊猫中阅读它,但我无法以正确的方式阅读它。 Pandas有一个用于读取csv文件的内置函数,但不知何故,它希望是面向行而不是面向列。我想要做的是获取标记为3m的行的信息并具有值和日期以绘制该索引的时间变化。但我无法解决这个问题。我知道我可以用
读取数据import pandas
data = pandas.io.read_csv("file.csv",parse_dates=True)
但如果csv文件以某种方式转置,它将起作用。 ħ
答案 0 :(得分:5)
pandas数据框有.transpose()
方法,但它不喜欢此文件中的所有空行。以下是如何清理它:
df = pandas.read_csv("hist_EURIBOR_2012.csv") # Read the file
df = df[:15] # Chop off the empty rows beyond 12m
df2 = df.transpose()
df2 = df2[:88] # Chop off what were empty columns (I guess you should increase 88 as more data is added.
当然,您可以将这些链接在一起:
df2 = pandas.read_csv("hist_EURIBOR_2012.csv")[:15].transpose()[:88]
然后df2['3m']
是您想要的数据,但日期仍然存储为字符串。我不太确定如何将其转换为DateIndex
。
答案 1 :(得分:0)
我从来没有将pandas用于csv处理。我只使用标准的Python lib csv函数,因为它们使用迭代器。
import csv
myCSVfile=r"c:/Documents and Settings/Jason/Desktop/hist_EURIBOR_2012.csv"
f=open(myCSVfile,"r")
reader=csv.reader(f,delimiter=',')
data=[]
for l in reader:
if l[0].strip()=="3m":
data.append(l)
f.close()