对熊猫中具有多个标题的列进行迭代索引

时间:2018-12-06 17:47:58

标签: python pandas dataframe indexing glob

我有包含波长和强度两列的文件,并且我有一个脚本可以遍历目录中的文件,以将它们组合成一个具有一个波长列和多个强度列的文件。我想用多个索引替换强度列,这些索引包含文件名中的信息(样本来源,样本日期等)。我有一个包含此信息的数据框,但无法找到熊猫函数以我建立的数据框替换“强度”。我当前的代码将数据帧复制一次并用每个文件覆盖它,因此我只剩下一组信息,这些信息仅与目录中的最后一个文件相对应。当前代码发布在下面。

import os
import pandas as pd
import glob
import numpy as np

def csvxtract():
    WavelengthDF = pd.DataFrame(columns=['wavelength'])
    TwoColDF = pd.DataFrame(columns=['wavelength', 'intensity'])
    bag = str(input('Please enter location and number of this sample bag: '))
    for filename in glob.glob('*.csv'):
        TwoColDF = pd.read_csv(filename)
        file = str(filename)
        NameDF = pd.DataFrame({'Bag': [bag], \
                               'Sample':[file[:6]], \
                               'Trial':[file[6:9]], \
                               'Date': [file[10:18]], \
                               'Time': [file[19:25]]})
        TNameDF = NameDF.T
        #ReNameTwoColDF = TwoColDF.rename(index=str, columns={'wavelength':'wavelength', 'intensity':TNameDF})
        combine = [TNameDF, WavelengthDF]
        CombinedDF = pd.concat(combine)
        WavelengthDF = TwoColDF.merge(WavelengthDF, how = 'outer', on = 'wavelength')
    CombinedDF.to_csv('CompiledData.csv')

csvxtract()
从代码中可以看到

,我尝试使用df.rename,但这似乎仅适用于用户输入字符串重命名列,而不是用数据帧中的多行覆盖名称。如果需要我当前或期望的输出,请告诉我。预先感谢。

我想我上面长期讨论的一个简短问题是:pandas中是否有任何函数可以让您用数据框替换单列索引?

0 个答案:

没有答案