删除某些单词和组合表

2024-06-16 09:47:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想合并两个大数据帧,添加一个包含源表名称的新列,下面是一个示例:

data1 = [['tom', 10, 'Unknown'], ['nick', '', 85], ['juli', 14]] 
Class1 = pd.DataFrame(data1, columns = ['Name', 'Age', 'Scores']) 

data2 = [['Chris', 9, '98'], ['Abbey', '', 90], ['Alex', 10, ]] 
Class2 = pd.DataFrame(data2, columns = ['Name', 'Age', 'Scores']) 

我尝试过以下几种技术,但都没有成功:

Class = pd.concat([Class1, Class2])

Class = pd.concat([Class1, Class2], join='outer')

Class = (pd.merge(Class1,Class2, how='outer')) [![enter image description here][1]][1]

预期结果应该是这样的 enter image description here


Tags: columns数据name名称dataframeageclasspd
2条回答

使用^{}^{}之前添加新列:

Class = pd.concat([Class1.assign(Class='Class1'), 
                   Class2.assign(Class='Class2')], ignore_index=True)
print (Class)
    Name Age   Scores   Class
0    tom  10  Unknown  Class1
1   nick           85  Class1
2   juli  14     None  Class1
3  Chris   9       98  Class2
4  Abbey           90  Class2
5   Alex  10     None  Class2

pd.concatkeys参数一起使用:

pd.concat([Class1, Class2], keys=['Class1','Class2']).reset_index()

输出:

  level_0  level_1   Name Age   Scores
0  Class1        0    tom  10  Unknown
1  Class1        1   nick           85
2  Class1        2   juli  14     None
3  Class2        0  Chris   9       98
4  Class2        1  Abbey           90
5  Class2        2   Alex  10     None

相关问题 更多 >