熊猫提取行的索引并使用提取的索引来收集数据?



我有一个独特的情况,我不知道如何表达它以获得与我在谷歌中类似的问题的答案。我有一个 Pandas 数据帧,这些数据帧中的每个行号对应于我需要数据的文件名。例如,row 1对应于文件1.txtrow 2对应于文件2.txt。我需要能够使用行号导航到some/path/1.txt下的这些文本文件,并使用linecache获取文件的第二行并将其附加到数据帧中的列下。最终结果将是这样的:

Some_data   Important_column
stuff       data_extracted_from_line_2_of_some/path/1.txt
more_stuff  data_extracted_from_line_2_of_some/path/2.txt
more_stuff  data_extracted_from_line_2_of_some/path/3.txt

我有一种感觉,这将lambda关键字,但我不确定该怎么做,因为数据位于数据帧之外的文件中。

遍历index并使用其值构造传递给linecache的字符串,怎么样?

import linecache
import os
import pandas as pd
print('Files in file path:n')
files = os.listdir('path_to_files')
print(files,'n')
df = pd.DataFrame(index=range(1,len(files)+1), columns=['Important_column'])
df['Important_column'] = [linecache.getline(os.path.join('path_to_files', str(i) + '.txt'),2) for i in df.index]
print("Df:n")
print(df)

输出:

Files in file path:
['1.txt', '2.txt', '3.txt'] 
Df:
Important_column
1    I am file 1n
2    I am file 2n
3    I am file 3n

可能需要其他编辑才能删除n

最新更新