【问题标题】:Create another numpy.array in a pandas data based upon conditionals根据条件在熊猫数据中创建另一个 numpy.array
【发布时间】:2020-10-05 23:44:09
【问题描述】:

我有一个数据框 df_a,带有一个名为“语言”的 numpy 数组。我想根据语言和与语言关联的语言代码创建另一个 numpy 数组 LanguageCode。

df_a = pd.DataFrame({'Language':[['cantonese', 'japanese', 
                 'mandarin','american'],['mandarin','english'], 
                 ['american', 'mandarin','cantonese']]})```

df_a

     Language                                  LangugeCode
0   [cantonese, japanese, mandarin, american]  [zh_yue,ja,cmn,us]
1   [mandarin, english]                        [cmn,en]
2   [american, mandarin, cantonese]            [us,cmn,zh_yue'

【问题讨论】:

  • 您的 df_a 中有 LanguageCode 列吗?
  • 您在哪里检索语言代码?像this answer一样使用pycountry

标签: python pandas numpy-ndarray


【解决方案1】:

我假设你有一个字典来关联语言和语言代码,然后使用 map。

请检查它是否对您有帮助:

假设:

import pandas as pd
import numpy as np

df_a = pd.DataFrame({'Language':[['cantonese', 'japanese', 
                 'mandarin','american'],['mandarin','english'], 
                 ['american', 'mandarin','cantonese']]})

#this is the hypothetical dictionary
lang_codes = {'cantonese': 'zh_yue','japanese': 'ja', 'mandarin': 'cmn','american': 'us','english': 'en'}

你可以做什么:

df_a['Language Code'] = [list(map(lambda x: lang_codes[x], row)) for row in df_a.Language]

检查:

#getting the numpy array format
language_code = np.array(df_a['Language Code'])

type(language_code)

numpy.ndarray

您的数据框将是:

    Language                                    Language Code
0   [cantonese, japanese, mandarin, american]   [zh_yue, ja, cmn, us]
1   [mandarin, english]                         [cmn, en]
2   [american, mandarin, cantonese]             [us, cmn, zh_yue]

【讨论】:

  • 是的,我有一个匹配代码列表。我会试试这个。非常感谢。
  • @JeffMagouirk,如果此答案解决了您的问题,请将答案标记为已接受,以便社区可以将其视为受信任的解决方案。谢谢
猜你喜欢
  • 1970-01-01
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-10-20
  • 2022-01-15
  • 2022-07-21
  • 2021-07-11
  • 2023-02-05
相关资源
最近更新 更多