如何将特定的熊猫数据帧项目合并为一个项目

2024-04-27 04:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了从PDF中提取首字母缩写词和其他关键字的代码,以创建词汇表列表。我已经删除了重复项,按字母顺序排序,并创建了一个panda数据帧。你知道吗

此数据帧的一部分(称为\u terms1的\u)如下所示:

    Acronyms/Abbrev
    0       EMP
    1       EFT
    2       FCF
    3       FY14
    4       FY15
    5       FY16
    6       GDN
    7       GP

实际上,我想编写一些代码,将项目FY14、FY15、FY16(用空格分隔)组合成一行,并使生成的数据帧如下所示:

    Acronyms/Abbrev
    0       EMP
    1       EFT
    2       FCF
    3       FY14 FY15 FY16
    4       GDN
    5       GP

我没有找到正确的工具/代码来做这件事。请帮帮我!你知道吗


Tags: 数据代码pdf关键字gpeftemp首字母
1条回答
网友
1楼 · 发布于 2024-04-27 04:52:32

有人做过类似的事情(在一个组中串联)here

但是您还需要创建一个虚拟索引,在本例中,您可以将groupby应用于前两个字符的子字符串。如果您希望组上有不同的内容,可以修改此子字符串

#Pandas library
import pandas as pd
#Create the dataset
df=pd.DataFrame({'Abbrev':['EMP','EFT','FCF','FY14','FY15','FY16','GDN','GP']})
#Dummy index with the substring (slice) to compare
df['ix']=df['Abbrev'].str.slice(0,2)
#Groupby concatenating the result
df=df.groupby(['ix'])['Abbrev'].apply(lambda x: ','.join(x)).reset_index()
#Drop the dummy index
df=df.drop(['ix'], axis=1)
#Show result
df

例如,如果您希望在匹配FY的前两个字母上设置if条件,那么您可以将第6行(创建IX的位置)替换为:

#Dummy index with the slice to compare
df['ix']=df['Abbrev'].apply(lambda x: x[0:2] if x[0:2]=='FY' else x)

希望对您有所帮助,欢迎使用堆栈溢出!你知道吗

相关问题 更多 >