用熊猫读取和合并文件[重复]
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 上的文档
【讨论】:
以上是关于用熊猫读取和合并文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章