pandas 对于一行中的所有值,如果某个单词重复多次,我们希望将其从列表中删除

pxiryf3j  于 2022-11-27  发布在  其他
关注(0)|答案(2)|浏览(124)

我有以下 Dataframe
| 英文|高|
| - -|- -|
| 心脏结核|심장의 결핵|
| 心肌结核|심근의 결핵|
| 心内膜结核|심내막의 결핵|
| 食管结核|식도의 결핵|
| 带状疱疹性角结膜炎|대상포진 각막결막염|
| 带状疱疹性睑缘炎|대상포진 안검염|
| 带状疱疹性虹膜炎|대상포진 홍채염|
我想要这样的结果。
| 英文|高|
| - -|- -|
| 心型|심장의|
| 心肌层|심근의|
| 心内膜|심내막의|
| 食道|식도의|
| 角膜结膜炎|각막결막염|
| 睑缘炎|안검염|
| 虹膜炎|音乐|
这只是一个例子,我有大约50,000个单词对。现在已经这样做了1周了。

k2arahey

k2arahey1#

您可以用途:

import re

# identify duplicates
s = df.stack().str.split().explode()
dups = s[s.duplicated()].groupby(level=1).unique().to_dict()
# {'en': array(['Tuberculosis', 'of', 'Zoster'], dtype=object),
#  'ko': array(['결핵', '대상포진'], dtype=object)}

# remove them
df.apply(lambda s: s.str.replace('|'.join(dups[s.name]), '', regex=True))

输出量:

en     ko
0                 heart    심장의
1            myocardium    심근의
2           endocardium   심내막의
3            oesophagus    식도의
4  keratoconjunctivitis  각막결막염
5           blepharitis    안검염
6                iritis    홍채염
4uqofj5v

4uqofj5v2#

我不知道这对于一个更大的数据集的可扩展性如何,我不知道实体之间的韩语re:whitespace的结构,但是它可以在给定的数据上工作。
我们将数据分成两列,因为介词“of”在“ko”列中似乎不存在,这会影响后面的步骤。然后,对于每一列,我们在空白处进行拆分,以形成列表列,我们将这些列分解为单独的行,然后我们获取值计数,以确定哪些元素出现了多次

ko=df['ko'].str.split().explode().value_counts()
en=df['en'].str.split().explode().value_counts()

ko
결핵       4
대상포진     3
심장의      1
심근의      1
심내막의     1
식도의      1
각막결막염    1
안검염      1
홍채염      1
Name: ko, dtype: int64

之后,我们使用布尔索引来选择每个系列只出现一次的元素

ko_col=ko[ko==1]
en_col=en[en==1]

en_col
heart                   1
myocardium              1
endocardium             1
oesophagus              1
keratoconjunctivitis    1
blepharitis             1
iritis                  1
Name: en, dtype: int64

我们依赖于这样一个事实,即在上述步骤中应保持顺序,但值得在较大的数据集中进行抽查,我们重新组合以创建输出 Dataframe

new_df=pd.DataFrame({'en':en_col.index,'ko':ko_col.index})
new_df
    en                      ko
0   heart                   심장의
1   myocardium              심근의
2   endocardium             심내막의
3   oesophagus              식도의
4   keratoconjunctivitis    각막결막염
5   blepharitis             안검염
6   iritis                  홍채염

相关问题