如何在panda for python中执行以下从 Dataframe A到 Dataframe B的 Dataframe 操作?我已经尝试了pivot和groupby,但是我一直得到错误。非常感谢任何支持。Dataframe A| 色谱柱A|色谱柱B|| - -|- -|| 100个|一个|| 100个|2个|| 二百个|三个|| 二百个|四个|Dataframe B| A列和B列|| - -|| 一个|| 2个|| 100个|| 三个|| 四个|| 二百个|
s4n0splo1#
使用groupby的一个选项:
groupby
out = (df .groupby('Col A', group_keys=False, sort=False) .apply(lambda d: d.iloc[:, ::-1].unstack().drop_duplicates()) .reset_index(drop=True).to_frame(name='Col A&B') )
另一个用concat:
concat
out = (pd .concat([df['Col B'], df['Col A'].drop_duplicates(keep='last')]) .sort_index().reset_index(drop=True).to_frame(name='Col A&B') )
输出:
Col A&B 0 1 1 2 2 100 3 3 4 4 5 200
如果顺序无关紧要,您可以stack:
stack
out = df.stack().drop_duplicates().reset_index(drop=True).to_frame(name='Col A&B')
Col A&B 0 100 1 1 2 2 3 200 4 3 5 4
gpfsuwkq2#
另一种可能的解决方案:
out = pd.DataFrame({'Col A&B': np.unique(df.values)}) out
输出量:
Col A&B 0 1 1 2 2 3 3 4 4 100 5 200
2条答案
按热度按时间s4n0splo1#
使用
groupby
的一个选项:另一个用
concat
:输出:
如果顺序无关紧要,您可以
stack
:输出:
gpfsuwkq2#
另一种可能的解决方案:
输出量: