我有一个如下所示的数据框:
contactId ticker
0 ABC XYZ
1 ABC ZZZ
0 BCA YYY
像这样创建一个支点:
final_df = final_df.pivot_table(index='contactId', columns='ticker', aggfunc=len, fill_value=0)
结果如下:
ticker XYZ ZZZ YYY
contactId
ABC 1 1 0
BCA 0 0 1
作为中间步骤(请参阅下面的请求),我假设我们需要转换枢轴,以便如果值> 0,则滚动,否则(空白)。即:
ticker XYZ ZZZ YYY
contactId
ABC XYZ ZZZ
BCA YYY
因为我要找的输出是空格分隔的代码列表+每个contactId的文本字符串:
contactId ticker description
ABC XYZ ZZZ The client is holding: XYZ ZZZ
BCA YYY The client is holding: YYY
对于中间步骤,我尝试了以下步骤(但它通过ValueError:Grouper for' ticker' not one-dimensional):
final_df = final_df.pivot_table(index='contactId', columns='ticker', values='ticker', fill_value="")
你能帮忙吗?感谢您的帮助!
答案 0 :(得分:0)
受@sharatpc建议的启发,在添加以下内容后删除重复项:
df = df[pd.notnull(df['contactId'])]
这对我有用:
df = df.set_index('contactId').groupby('contactId')['ticker'].transform(lambda x: ' '.join(x)).reset_index()