首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫read.csv创造元组

熊猫read.csv创造元组
EN

Stack Overflow用户
提问于 2020-01-06 21:46:11
回答 2查看 1.2K关注 0票数 1

编辑:一个更好的循环在底部也。P是我对熊猫的缩写。

我正在尝试引入一些光谱,这些频谱可以作为.csvs (没有标头),合并它们,并删除一些列。这些光谱最初以两列格式提供:

代码语言:javascript
复制
col1  col2                       col1-1   col1-2   col2-1   col2-2 ... colm-1   colm-2
X1    Y1  X M spectra to make    X1-1     Y1-1      X2-1     Y2-1  ...  Xm-1    Ym-1
...   ...                                            ...
Xn    Yn                         X1-n     Y1-n      X2-n     Y2-n  ...  Xm-n    Ym-n

所有的Col1都是多余的。通过删除所有的Col1或除第一Col1之外的所有,光谱已经准备好在我构建的几个不同的工具中使用。

问题在于我的进气循环:

代码语言:javascript
复制
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

mergespec=p.DataFrame()
for f in all_filenames:
    file = p.read_csv(f, header=None, names=["WVNB", "Int"]),
    filemerge = p.merge(file, mergespec, on="WVNB", how='outer')

对象'file‘作为元组返回。代码在合并步骤中失败,因为“只能合并序列或DataFrame对象,类'tuple’被传递”,因此被拒绝。

我可以确认“all_filenames”是正确填充的,并且read_csv在这个循环之外工作得很好。事实上,我在另一个笔记本中有一个类似的循环,它连接光谱精细(我在图形生成中使用)。

亲爱的读者,我是非常新的Python和我的代码,如果90%脚本儿童抢劫。请帮助我理解为什么我的p.read_csv返回一个元组,或者我是如何修改这个循环的。谢谢!

编辑: Malwaisen和Vishwas都回答了关于元组一代的问题,这确实有效。它还打开了匹配列名的其他问题。然而,在阅读了Pandas Merging 101之后,我发现了一个更简洁的循环:

代码语言:javascript
复制
filemerge = p.concat([p.read_csv(f, header = None, names=["cm^-1", f]) for f in all_filenames], axis=1)

它取代了从mergespec=p.Dataframe()到之前的所有内容。这符合我的目标,用较少的线条。另外,由于f是列名和文件名,所以我使用df.columns.str.rstrip('.0.csv')和lstrip将文件名中的相关示例ID保留为列名。

EN

回答 2

Stack Overflow用户

发布于 2020-01-06 22:02:31

file=...末尾有一个逗号。Python将其视为一个元组,其中file[0]是您的文件,您可以使用附加逗号的file[1]等等。

只要去掉那个逗号,你就可以走了。或者,如果逗号靠近您的心脏,请在合并语句中使用file[0]

票数 1
EN

Stack Overflow用户

发布于 2020-01-06 21:49:38

试试这个片段,看看它是否有效。

代码语言:javascript
复制
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

mergespec=p.DataFrame()
for f in all_filenames:
    file = p.read_csv(list (f), header=None, names=["WVNB", "Int"]),
    filemerge = p.merge(file, mergespec, on="WVNB", how='outer')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59619399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档