Python groupby和join结果在输出中包含索引和数据类型

Python groupby和join结果在输出中包含索引和数据类型,python,pandas,Python,Pandas,目标是获取如下所示的数据帧: keywords group word1 x word2 x word3 x x |word1|word2|word3 data['keywords'] = ['|%s' %i for i in data['keywords']] x = data.groupby('group')['keywords'].apply(lambda x: ''.join(str(x).split())) 将组和关键字作为数据

目标是获取如下所示的数据帧:

keywords    group
word1        x
word2        x
word3        x
x    |word1|word2|word3
data['keywords'] = ['|%s' %i for i in data['keywords']]
x = data.groupby('group')['keywords'].apply(lambda x: ''.join(str(x).split()))
将组和关键字作为数据帧中的字符串

并创建如下所示的数据帧:

keywords    group
word1        x
word2        x
word3        x
x    |word1|word2|word3
data['keywords'] = ['|%s' %i for i in data['keywords']]
x = data.groupby('group')['keywords'].apply(lambda x: ''.join(str(x).split()))
这是我当前的代码:

我尝试过使用一个函数:

def preprocessing(dataset, group, keywords):
    dataset[keywords] = dataset[keywords].replace(' ', '_', regex = True)
    df = dataset.groupby(group)[keywords].apply(lambda x: ','.join(str(x).split()))
    df = pd.DataFrame(df)
    df[keywords] = df[keywords].replace('_', ' ', regex = True)
    return(df)
(此处的.replace是为了更容易通过.join块保持空格)

我试过这样做:

keywords    group
word1        x
word2        x
word3        x
x    |word1|word2|word3
data['keywords'] = ['|%s' %i for i in data['keywords']]
x = data.groupby('group')['keywords'].apply(lambda x: ''.join(str(x).split()))
我得到的输出有两个重要问题

  • 输出结果如下所示,组作为索引:
  • 其中,数字似乎是单个单词的索引号,最后的字符串以描述性详细信息“Name:x,dtype:object”结尾

  • 对于大型数据集,它只会在字符串中获得第一个30个和最后30个结果,中间有一个省略号,几乎像预览。
  • 什么会导致奇怪的格式问题和数据丢失?这似乎是lambda函数的一个问题,因为其他每一个部分都按照预期工作。是否有其他方法不会导致数据丢失?

    使用:

    df.groupby('group')['keywords'].apply(lambda x: '|'+'|'.join(x))
    


    “很高兴它能起作用,你会考虑这个答案吗?”