【发布时间】:2019-06-23 02:10:52
【问题描述】:
我有几个格式为 /folder/blahblah_*K.txt 的 .txt 文件,其中星号代表开氏温度。每个文件包含 3 列(我们称它们为“A”、“B”和“C”)。我想从每个文件中创建一个具有公共索引(第一列,称为“A”)和“B”列的单个 DataFrame。
我已经得到了一个 DataFrame 列表,其中列表中的每个值都是一整组数据(即列表中的每个值都包含每个 *.txt 文件的所有值)。
在所需的 DataFrame 中,我想用文件名中 * 表示的温度来指定“B”数据的每一列。
到目前为止,我的方法是:
files = glob.glob("folder/blahblah*K.txt")
dataframes = []
for f in files:
dataframes.append(pd.read_csv(f, sep='\t'))
dataframes_df = pd.DataFrame(dataframes)
有没有办法完成这些任务?有没有更有效的方法?
【问题讨论】:
-
一些提示:您已经获得了文件的名称(
f变量),因此您可以使用正则表达式从此处提取温度。另外,查看pandas.concat()、pandas.read_table()(而不是使用sep)并将变量分配给列。