Python 熊猫:如何使用数据框中的数据作为路径/文件名的一部分写入csv文件
熊猫:如何使用数据框中的数据作为路径/文件名的一部分写入csv文件Python 熊猫:如何使用数据框中的数据作为路径/文件名的一部分写入csv文件,python,pandas,Python,Pandas,熊猫:如何使用数据框中的数据作为路径/文件名的一部分写入csv文件 data2 = {'filepath': ['C:\\test\\testsub\\testfile.csv']} path = pd.DataFrame(data2, columns=['filepath']) print path filepath 0 C:\test\testsub\testfile.csv 我有这样一个数据帧示例: df = pd.DataFrame(n
data2 = {'filepath': ['C:\\test\\testsub\\testfile.csv']}
path = pd.DataFrame(data2, columns=['filepath'])
print path
filepath
0 C:\test\testsub\testfile.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
df.to_csv('C:\\test\\testsub\\testfile.csv')
以及第二个数据帧,其中一列包含完整路径/文件名
data2 = {'filepath': ['C:\\test\\testsub\\testfile.csv']}
path = pd.DataFrame(data2, columns=['filepath'])
print path
filepath
0 C:\test\testsub\testfile.csv
我可以将第一个数据帧写入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
df.to_csv('C:\\test\\testsub\\testfile.csv')
但是我找不到从“path”数据框设置路径/文件名的方法
df.to_csv(path['filepath'])
…返回一个错误:
'TypeError: coercing to Unicode: need string or buffer, list found'
数据帧似乎需要某种形式的转换才能在这里使用。我找不到这方面的任何信息。有人能告诉我怎样才能使这项工作成功吗?感谢您的帮助
(在大图中,该过程是循环的一部分,其中所需的路径/文件名在数据框“path”中返回。我可以按原样打印路径和文件名,但我无法写入csv)您只需确保从
文件路径
列中提取单个元素,而不是将整个列作为文件名传递。您可以使用像.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]
但是,如果您有不同的索引,这将不会以相同的方式工作。非常感谢您的帮助。你的建议非常适合这个例子。您指出,该解决方案不适用于不同的索引,并且我意识到我的示例中仅使用一行是不够的。此解决方案是否适用于具有多行的数据帧?@user2904588:在
current\u filepath=path['filepath']中。iloc[0]
,0
仅表示行号。如果您循环查看行号并使用current\u filepath=path['filepath'].iloc[row\u num]
,它应该可以工作。再次感谢马吕斯,我仍然没有得到这一点--我可以问你更多的细节吗?我不知道如何同步行号。例如,您的示例中的循环是for row_num in?
好的,谢谢您的帮助。原来的答案很好,值得赞赏,我的错是原来的问题没有充分反映我的要求。