10

嘿,我正在尝试在 pandas 中读取您可以从此处下载的 csv 文件(euribor 利率我想您可以想象我想要这个文件的原因!)。该文件是一个 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,,,,

让第一列达到 12m(但我已经给了你可以下载示例的链接)。我想在熊猫中阅读它,但我无法以正确的方式阅读它。Pandas 有一个用于读取 csv 文件的内置函数,但不知何故它希望是面向行而不是面向列的。我想要做的是获取标记为 3m 的行的信息,并具有值和日期,以便绘制该索引的时间变化。但我无法处理这个问题。我知道我可以读取数据

import pandas 
data = pandas.io.read_csv("file.csv",parse_dates=True) 

但如果 csv 文件会以某种方式转置,它会起作用。H

4

2 回答 2

7

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.

于 2012-05-07T15:26:52.707 回答
0

我从未使用熊猫进行 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()
于 2012-05-07T15:26:13.200 回答