Python 并排/同时上下连接数据帧行
我有个问题。我想从另一个数据帧创建一个新的数据帧。我希望避免重复行。这意味着,如果有相同的邮件,我应该把它们并排连接起来,否则就要从头到脚。但问题是我每次都会遇到值索引错误Python 并排/同时上下连接数据帧行,python,pandas,indexing,dataframe,concatenation,Python,Pandas,Indexing,Dataframe,Concatenation,我有个问题。我想从另一个数据帧创建一个新的数据帧。我希望避免重复行。这意味着,如果有相同的邮件,我应该把它们并排连接起来,否则就要从头到脚。但问题是我每次都会遇到值索引错误 pandas.indexes.base.InvalidIndexError: Reindexing only valid with uniquely valued Index objects 以下是我所做的: if not self.data.empty: if data_frame_['Email'][0] in
pandas.indexes.base.InvalidIndexError: Reindexing only valid with uniquely valued Index objects
以下是我所做的:
if not self.data.empty:
if data_frame_['Email'][0] in self.data['Email'].get_values():
self.data = pd.concat([self.data, data_frame_], axis=1)
else:
self.data = pd.concat([self.data,data_frame_], axis=0)
else:
self.data = data_frame_.copy()
end = time.time()
data_frame_uu只有一行这就是我使用
data_frame_['Email'][0]
数据示例(位于数据框中):
我想要的是:
Email Project1 Target1 Projetc2 Target2
-------------------------------------------------------------
kml@mail.com 1 5000 7 4000
abc@abc.com 7 5000 NaN NaN
Ps:我可以使用dicts,但为了保护代码完整性,我想使用数据帧
提前感谢。您可以使用,但首先通过以下方式创建组:
很高兴能帮助你!祝你好运谢谢你的接受!我没有意识到这一点(因为我的数据帧中大约有100列),当我使用pivot\u table(我测试过,在pivot\u table操作之后,我丢失了这些列)时,会丢失这些列。我失去了3个专栏。其中2个是日期值,如“2016-07-29”,第三个是字符串。我不明白为什么,你有什么想法吗?谢谢。是的,有问题描述
Groupby
和pivot
非常相似,因此我认为这对pivot
也是有效的。
Email Project1 Target1 Projetc2 Target2
-------------------------------------------------------------
kml@mail.com 1 5000 7 4000
abc@abc.com 7 5000 NaN NaN
#rename columns
df.rename(columns={'Project1':'Project','Target1':'Target'}, inplace=True)
print (df)
Email Project Target
0 kml@mail.com 1 5000
1 abc@abc.com 7 5000
2 kml@mail.com 7 4000
df['g'] = (df.groupby('Email').cumcount() + 1).astype(str)
df1 = df.pivot_table(index='Email', columns='g', values=['Project', 'Target'])
#Sort multiindex in columns
df1 = df1.sort_index(axis=1, level=1)
#'reset' multiindex in columns
df1.columns = [''.join(col) for col in df1.columns]
print (df1)
Project1 Target1 Project2 Target2
Email
abc@abc.com 7.0 5000.0 NaN NaN
kml@mail.com 1.0 5000.0 7.0 4000.0