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