Pandas:如何使用数据帧中的数据作为路径/文件名的一部分来编写csv文件

时间:2014-04-09 00:30:31

标签: python pandas

Pandas:如何使用数据帧中的数据作为路径/文件名的一部分来编写csv文件

我有一个像这样的示例数据框:

df = pd.DataFrame(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
print df

          0
a -0.899348
b  0.297170
c -0.998461
d  0.651564
e  2.013107

和第二个数据框,其中包含一个包含完整路径/文件名的列

data2 = {'filepath': ['C:\\test\\testsub\\testfile.csv']}
path = pd.DataFrame(data2, columns=['filepath'])
print path

                       filepath
0  C:\test\testsub\testfile.csv

我可以将第一个数据帧写入csv,如下所示:

df.to_csv('C:\\test\\testsub\\testfile.csv')

但我无法找到一种方法来设置路径'数据帧。

df.to_csv(path['filepath'])

...返回错误:

'TypeError: coercing to Unicode: need string or buffer, list found'

似乎数据框需要某种形式的转换才能在此处使用。我无法找到有关此信息的任何信息。任何人都可以告诉我如何使这项工作?任何和所有帮助表示赞赏。

(在更大的图片中,该过程是循环的一部分,其中在数据框'路径中返回所需的路径/文件名。我可以完全按原样打印路径和文件名,但是我不能写csv)

1 个答案:

答案 0 :(得分:2)

您只需要确保从filepath列中提取单个元素,而不是将整个列作为文件名传递。您可以使用.ix[].iloc[]

等索引方法执行此操作
current_filepath = path['filepath'].iloc[0]

current_filepath
Out[8]: 'C:\\test\\testsub\\testfile.csv'

df.to_csv(current_filepath)

因为您的示例数据帧path只有整数索引,所以您也可以这样做:

path['filepath'][0]

但如果你有不同的索引,这种方法也不会有同样的效果。