gpt4 book ai didi

python - 无法根据 Pandas 数据框中的条件为值添加前缀

转载 作者:行者123 更新时间:2023-12-05 06:28:09 25 4
gpt4 key购买 nike

首先,我是 Python 的新手,所以我不是专家......

这是我的问题。我有这个数据框:

   CODE_IRIS  PDL_RESIDENTIEL  PDL_TOTAL  CONSO_RESIDENTIEL  CONSO_TOTALE
0 10040101 500 510 11264 26677
1 10040102 806 809 16234 17318
2 10040201 921 925 14451 17065
3 10040202 937 943 13036 19516
4 10049999 94 94 1287 1287

事情是,CODE_IRIS是一个 object并且应该有 9 个字符,如下所示:

       CODE_IRIS  PDL_RESIDENTIEL  PDL_TOTAL  CONSO_RESIDENTIEL  CONSO_TOTALE
17861 766810113 588 593 9344 14743

因此,我需要传递一个前缀 0CODE_IRIS中的字符长度不如 9,就像我在 Excel 上用公式 =IF(LEN([@[Code IRIS]]) < 9; 0&[@[Code IRIS]]; [@[Code IRIS]]) 做的那样.

现在,当我尝试使用 elec.loc[elec['CODE_IRIS'].str.len() < 9] 查找只有 8 个字符的值时,我得到的结果是:

Out[393]: 
Empty DataFrame
Columns: [CODE_IRIS, PDL_RESIDENTIEL, PDL_TOTAL, CONSO_RESIDENTIEL, CONSO_TOTALE]
Index: []

然后当我尝试使用 elec['CODE_IRIS'].str.len() 查看每个值的长度时,我得到的结果是:

Out[396]: 
0 NaN
1 NaN
...
Name: CODE_IRIS, Length: 23905, dtype: float64

虽然列CODE_IRIS绝对是 object ,正如您在这里看到的:

elec.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 23905 entries, 0 to 23904
Data columns (total 5 columns):
CODE_IRIS 23905 non-null object
PDL_RESIDENTIEL 23905 non-null int64
PDL_TOTAL 23905 non-null int64
CONSO_RESIDENTIEL 23905 non-null int64
CONSO_TOTALE 23905 non-null int64
dtypes: int64(4), object(1)
memory usage: 1.1+ MB

我不明白。谁能给我解释一下这是怎么回事?

(我希望我已经尽可能地让自己明白)。谢谢!

最佳答案

你可以只使用zfill在每个 CODE_IRIS 上:

df['CODE_IRIS'] = df['CODE_IRIS'].map(lambda x: str(x).zfill(9))

关于python - 无法根据 Pandas 数据框中的条件为值添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636927/

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