我有一个问题,我一直在试图找到一个解决办法。你会认为这不会是很难弄清楚。
我有一个PandasDataFrame与以下格式:
Id Name Now Then There Sold Needed
0 1 Caden 8.1 3.40 3.95 NaN NaN
1 7 Bankist NaN 2.45 2.20 NaN NaN
2 1 Artistes 8.1 3.40 3.95 NaN NaN
0 1 NaN NaN NaN NaN 33.75 670,904
1 7 NaN NaN NaN NaN 33.75 670,904
我想让DataFrame根据'Id'数据行合并其数据列,使它看起来像这样:
Id Name Now Then There Sold Needed
0 1 Caden 8.1 3.40 3.95 33.75 670,904
1 7 Bankist NaN 2.45 2.20 33.75 670,904
2 1 Artistes 8.1 3.40 3.95 33.75 670,904
正如您所看到的,“Id”列有两个Id# 1,每个Id都有一个唯一的“Name”。我还不知道如何提出这个问题,该问题可能会提供一些示例代码。到目前为止,我已经尝试了不同的方法,但都失败了,包括合并、联接和concat的不同组合。最好的结果是导致当前DataFrame具有NaN值。
当有重复的Id时,我试图使“已售出”和“所需”列(只有一个值)与相应的“Id”行对齐。
3条答案
按热度按时间v8wbuo2f1#
这里有一种方法
第一个
oipij1gg2#
复制一个副本,分隔列,删除所有值都为nan的行,然后合并:
* 假设 Dataframe 为df1
mpbci0fu3#
另一种可能的解决方案:
输出量: