Python 将熊猫中的两行合并为一行

Python 将熊猫中的两行合并为一行,python,pandas,Python,Pandas,我有一个这样的数据框 no, frc, val 1121,1,"John" 1121,0,236 3612,1,"Mary" 3612,0,545 "John",236 "Mary",545 我想这样组合数据 no, frc, val 1121,1,"John" 1121,0,236 3612,1,"Mary" 3612,0,545 "John",236 "Mary",545 您可以使用merge()方法将此DF的两个子集进行自联接: In [21]: (df[df['frc']==

我有一个这样的数据框

no, frc, val 
1121,1,"John"
1121,0,236
3612,1,"Mary"
3612,0,545
"John",236
"Mary",545
我想这样组合数据

no, frc, val 
1121,1,"John"
1121,0,236
3612,1,"Mary"
3612,0,545
"John",236
"Mary",545

您可以使用
merge()
方法将此DF的两个子集进行自联接:

In [21]: (df[df['frc']==1]
            .drop('frc',1)
            .rename(columns={'val':'name'})
          .merge(df[df['frc']==0].drop('frc',1)))
Out[21]:
     no  name  val
0  1121  John  236
1  3612  Mary  545

您可以使用
merge()
方法将此DF的两个子集进行自联接:

In [21]: (df[df['frc']==1]
            .drop('frc',1)
            .rename(columns={'val':'name'})
          .merge(df[df['frc']==0].drop('frc',1)))
Out[21]:
     no  name  val
0  1121  John  236
1  3612  Mary  545

或产生OP输出

print(
    df.set_index(['no', 'frc']).val
      .unstack()[[1, 0]]
      .to_csv(index=False, header=False)
)

John,236
Mary,545

或产生OP输出

print(
    df.set_index(['no', 'frc']).val
      .unstack()[[1, 0]]
      .to_csv(index=False, header=False)
)

John,236
Mary,545

如果这只是一个问题,请避免添加与您的问题无关的标签。例如,我不需要了解神经网络来解决您的问题,因此不需要将其标记为机器学习。如果这只是一个问题,请避免添加与您的问题无关的标记。例如,我不需要知道神经网络来解决你的问题,所以没有必要把它称为机器学习。是的,这个解决方案更加有意识!是的,这个解决方案更加有意识!