Python 如何合并两个数据帧并保持其中一个数据帧的相同顺序?
我有两个大的数据帧,我想用第一个(数据帧)的相同顺序合并它们 为了简单起见,我将创建虚拟数据Python 如何合并两个数据帧并保持其中一个数据帧的相同顺序?,python,python-3.x,pandas,dataframe,merge,Python,Python 3.x,Pandas,Dataframe,Merge,我有两个大的数据帧,我想用第一个(数据帧)的相同顺序合并它们 为了简单起见,我将创建虚拟数据 import pandas as pd data = {'name': pd.Series(['A','A','A','B',"C",'C','C']), 'text': pd.Series(['txt2','txt1','txt3','txt1','txt2','txt3','txt1']), 'desc': pd.Series(['text2',
import pandas as pd
data = {'name': pd.Series(['A','A','A','B',"C",'C','C']),
'text': pd.Series(['txt2','txt1','txt3','txt1','txt2','txt3','txt1']),
'desc': pd.Series(['text2','text1','text3','text1','text2','text3','text1'])}
df = pd.DataFrame(data)
我所做的是过滤df中的值'A'和df2中的列A
df=df[df['name']=='A']
df2=df2[['A']]
然后我将df2表单A中的列重命名为文本,并进行了合并
df2.rename(columns={'A':'text'}, inplace=True)
我想对多个列执行相同的过程不仅仅是一个列,我有一个包含多个列的大型数据帧,如何以有效的方式执行
请参考下图以了解更多信息
先试试,然后
df2.rename(columns={'A':'text'}, inplace=True)
finalDF = pd.merge(df2, df, on=['text'], how='left')
df2_stack = df2.stack().reset_index(level=1)
level_1 0
0 A txt1
0 B txt1
0 C txt1
1 A txt2
1 C txt2
2 A txt3
2 C txt3
# rename columns after stack
df2_stack.columns = ["name", "text"]
name text
0 A txt1
0 B txt1
0 C txt1
1 A txt2
1 C txt2
2 A txt3
2 C txt3
df.merge(df2_stack, on=['name','text'])
name text desc
0 A txt2 text2
1 A txt1 text1
2 A txt3 text3
3 B txt1 text1
4 C txt2 text2
5 C txt3 text3
6 C txt1 text1