Pandas为多个密钥实例组合数据框选项?

时间:2015-09-06 22:43:35

标签: python pandas merge dataframe

我使用的是Python 3.4和Windows 7.以下是我的第一个Dataframe示例:Sample Data

这是我的第二个DataFrame:Sample Data 2

我的目标是使用" RTID"作为我的钥匙。但是,正如我从另一个数据结构解析的数据所证明的那样,似乎存在重复的密钥。此外,该要求需要每个RTID具有唯一的事务类型。

我有更多这些数据框(其中一些也共享公共列标题名称)需要合并为一个内聚数据帧。每个行值的完整性都与其标题一起保持。重复的列名称应仅在最终产品中出现一次,相应的值按顺序附加每个相应的行(因此我最初考虑使用RTID列作为键)以及缺少或不适用的值 - 空白空间。我最初的想法是连接,但是,由于各种dtypes,我收到以下错误:

AssertionError: invalid dtype determination in get_concat_dtype 

可以在此处找到:Pandas/Internals.py

@EdChum@BrianPendleton对内存管理问题非常有帮助。

我想知道加入和合并是否可能是此特定上下文的有效用例。我欢迎对此提出反馈。

1 个答案:

答案 0 :(得分:0)

我正在引用 pg。我的回答是{<3}}的188 。在回顾了所提供的各种方法之后,我能够实现最终产品。

引用上述两个示例数据源(并删除索引):

sample1 = pd.read_csv('sample_data.csv', dtype=str, error_bad_lines = False)
sample2 = pd.read_csv('sample2.csv', dtype=str, error_bad_lines = False)
sample_concat = pd.concat([sample1, sample2], keys = ['one', 'two'], ignore_index=True)

这产生了正确的输出。事实证明,我正在推翻这个问题。在此上下文中,行索引没有意义。 ignore_index = False参数允许不保留串联轴上的索引。这很有用,因为我并没有寻求找到数据集的交集(理论上,在我正在争论的数据结构中,这一点并不明显)。