当前位置: 首页 > 面试题库 >

合并pandas数据框列表

卓俊晖
2023-03-14
问题内容

有很多类似的问题,但没有一个专门针对此问题。

我有一个数据帧列表,我需要使用唯一列将它们合并在一起(date)。字段名称不同,因此concat退出了。

我可以手动使用df[0].merge(df[1],on='Date').merge(df[3],on='Date)等将每个df逐一合并,但是问题是列表中数据帧的数量随用户输入而不同。

有什么合并方法可以一次性将所有数据帧合并到一个列表中?还是某些for in loop?

我正在使用Python 2.7。


问题答案:

您可以使用reduce函数wheredfList是数据帧列表:

import pandas as pd
from functools import reduce
reduce(lambda x, y: pd.merge(x, y, on = 'Date'), dfList)

作为演示:

df = pd.DataFrame({'Date': [1,2,3,4], 'Value': [2,3,3,4]})
dfList = [df, df, df]
dfList

# [   Date  Value
#  0     1      2
#  1     2      3
#  2     3      3
#  3     4      4,    Date  Value
#  0     1      2
#  1     2      3
#  2     3      3
#  3     4      4,    Date  Value
#  0     1      2
#  1     2      3
#  2     3      3
#  3     4      4]

reduce(lambda x, y: pd.merge(x, y, on = 'Date'), dfList)
#   Date  Value_x  Value_y  Value
# 0    1        2        2      2
# 1    2        3        3      3
# 2    3        3        3      3
# 3    4        4        4      4


 类似资料:
  • 问题内容: 我正在使用下面的代码合并两个csv(数据帧): 我有以下CSV文件 文件1: 文件2: 合并后 如果您注意到student_id的开头附加了0,应该将其视为文本,但是在合并并使用函数后,它将其转换为数字并删除了前导0。 即使在to_csv之后,如何将列保持为“文本”? 我认为它的to_csv函数可以再次保存为数字添加了dtype = {‘student_id’:str}。 问题答案:

  • 问题内容: 我肯定在这里错过了一些简单的事情。尝试在熊猫中合并具有相同列名的两个数据框,但右侧的数据框具有一些左侧没有的列,反之亦然。 我试着加入外部联接: 但这产生了: 我还指定了一个要连接的单列(例如on =“ id”),但是它复制了除“ id”以外的所有列,例如attr_1_x,attr_1_y,这并不理想。我也将整个列列表(有很多)传递给了“ on”: 产生: 我想念什么?我想获得一个带有

  • 问题内容: 我在Python中使用熊猫有数据框。其中两列分别命名为和。我想创建一个名为 的变量。 问题答案: 如果两个列都是字符串,则可以直接将它们连接起来: 如果其中一列(或两列)都不是字符串类型,则应首先将其转换为字符串, 这样做时要小心! 如果需要连接多个字符串列,可以使用: 其中是分隔符。

  • 问题内容: 我有2个数据框: restaurant_ids_dataframe 和 restaurant_review_frame 我想使用熊猫中的DataFrame.join()命令将这两个DataFrame加入一个单一的数据框中。 我尝试了以下代码行: 但是,当我尝试这样做时,出现以下错误: 我对熊猫很陌生,不知道就执行join语句而言我在做什么错。 任何帮助将非常感激。 问题答案: 您可以使

  • 问题内容: 我正在寻找一种行为与T-SQL中的合并类似的方法。我有2列(列A和B)稀疏地填充在pandas数据框中。我想使用以下规则创建一个新列: 如果A列中的值 不为null ,则将该值用于新C列 如果A列中的 值为null ,则将B列中的值用于新C列 就像我提到的那样,这可以通过合并功能在MS SQL Server中完成。我还没有找到一个好的pythonic方法。是否存在? 问题答案: 使用C

  • 问题内容: 我有一个熊猫数据框: 其中包括系列对象: 指出了一些命令: 每个字典具有相同的键: 上面是tweeter API的tweet中字段的命令之一(一部分)。我想根据这些命令构建数据框架。 当我尝试直接制作数据框时,每行仅获得一列,并且此列包含整个字典: 当我尝试使用from_dict()创建数据框时,得到相同的结果: 接下来,我尝试了列表理解,但返回了错误: 当我从单行创建数据框时,它几乎