当我合并两个数据帧时,它会保留来自左侧和右侧数据帧的列 加上x和y。 但我希望它成为一列,并“合并”两列的值,以便:
我还尝试了使用concatenate,在本例中,它确实“合并”了两列,但它似乎只是“附加”了两行
例如,在下面的代码中,我希望获得所需的数据帧df_作为输出。我怎么能得到这个
import pandas as pd
import numpy as np
np.random.seed(30)
company1 = ('comA','comB','comC','comD')
df1 = pd.DataFrame(columns=None)
df1['company'] = company1
df1['clv']=[100,200,300,400]
df1['date'] = [20191231,20191231,20191001,20190931]
print("\ndf1:")
print(df1)
company2 = ('comC','comD','comE','comF')
df2 = pd.DataFrame(columns=None)
df2['company'] = company2
df2['clv']=[300,450,500,600]
df2['date'] = [20191231,20191231,20191231,20191231]
print("\ndf2:")
print(df2)
df_desired = pd.DataFrame(columns=None)
df_desired['company'] = ('comA','comB','comC','comD','comE','comF')
df_desired['clv']=[100,200,300,450,500,600]
df_desired['date'] = [20191231,20191231,20191231,20191231,20191231,20191231]
print("\ndf_desired:")
print(df_desired)
df_merge = pd.merge(df1,df2,left_on = 'company',
right_on = 'company',how='outer')
print("\ndf_merge:")
print(df_merge)
# alternately
df_concat = pd.concat([df1, df2], ignore_index=True, sort=False)
print("\ndf_concat:")
print(df_concat)
一种方法是
concat
两个数据帧,然后根据公司对date
上连接的数据帧进行升序排序,并删除重复条目(,同时保留最新条目):结果:
相关问题 更多 >
编程相关推荐