用熊猫读取和合并文件[重复]

Posted

技术标签:

【中文标题】用熊猫读取和合并文件[重复]【英文标题】:Reading and merging files with pandas [duplicate] 【发布时间】: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)并将变量分配给列。 【参考方案1】:

您可以使用concat 将所有数据帧合并为一个。比如:

files = glob.glob("folder/blahblah*K.txt")

dataframes = []

for f in files:
    dataframes.append(pd.read_csv(f, sep='\t')['B'])

dataframes_df = pd.concat(dataframes, axis=1, keys=['A'])

我没有对此进行测试,但它应该让你知道该怎么做。

Merge, concat and append 上的文档

【讨论】:

以上是关于用熊猫读取和合并文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

要合并的大文件。如何防止熊猫合并中的重复?

数据框合并在熊猫(0.7.3)中创建重复记录

合并熊猫 groupBy 对象

合并两个数据框而不重复熊猫

与熊猫外部合并时出现重复问题

合并一个值在另外两个之间的熊猫数据框[重复]