gpt4 book ai didi

Python:不排除 map (字典)之后的行

转载 作者:行者123 更新时间:2023-12-01 02:14:03 25 4
gpt4 key购买 nike

我想使用字典来在数据框中创建新的字段/列。如果值不匹配,我希望将值设置为“NA”或类似的值。

所以,我正在使用这样的东西:

#Creation of a dictionary after combining two lists
country_Codes = ['us', 'de', 'fr']
values = ['US', 'EU', 'EU']
dictionary = dict(zip(country_Codes, values))

df['new'] = df['Country_Code'].map(dictionary, na_action=None)

当我将所有内容导出到 CSV 时,它通常会创建新列。问题是它会跳过不匹配的行。如果字典中没有匹配项,我的脚本会排除某些行。我认为这个问题与这一行有关:na_action='忽略'

这是我在 jupyter 中使用的示例代码,我在其中临时创建了 s 和 d 系列:

s = pd.Series(['us', 'de', 'random1','random2', 'fr', 'random3'])
d = pd.Series(['us', 'de', 'random1','random2', 'fr', 'random3'])

#Creation of a dictionary after combining two lists
country_Codes = ['us', 'de', 'fr']
values = ['US', 'EU', 'EU']
dictionary = dict(zip(country_Codes, values))

a = s.map(dictionary, na_action=None)
b = d.map(dictionary, na_action='ignore')

这是打印后我可以看到的:

enter image description here

我的第一个问题是如何看到相同的结果?似乎 na_action 不适用。其次,如何将行保留在具有多列的更复杂的数据框中?我在打印 type() 后检查了类型是否正确:

class 'pandas.core.frame.DataFrame'

有没有办法在该字段(Country_Code)与字典值不匹配后保留行?

另外,有没有办法打印字段(Country_Code)与字典值不匹配的行?

最佳答案

这里有几个问题:

(1) na_action

na_action 涉及输入而不是输出。以下是从 pandas 文档中摘取的示例:

>>> s = pd.Series([1, 2, 3, np.nan])
>>> s2 = s.map('this is a string {}'.format, na_action=None)
0 this is a string 1.0
1 this is a string 2.0
2 this is a string 3.0
3 this is a string nan
dtype: object

>>> s3 = s.map('this is a string {}'.format, na_action='ignore')
0 this is a string 1.0
1 this is a string 2.0
2 this is a string 3.0
3 NaN
dtype: object

(2)如果不匹配如何保留行?

这可能就是您正在寻找的。如果找不到匹配项,则不会更改。

b = d.replace(dictionary)

(3) 打印 Country_Code 在字典中没有匹配项的行。

df[~df['Country_Code'].isin(dictionary)]

关于Python:不排除 map (字典)之后的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48519894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com