gpt4 book ai didi

python - 循环并制作新列python

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:04 25 4
gpt4 key购买 nike

我有这个循环

Source= []
for row in df['Num_Col']:
if row[0:6].isdigit()==True and row[6:8].isalpha()==True:
Source.append('Num')
df['Source'] = Source

我想要实现的是,当我遍历指定的列时,我希望它查看前 6 个位置(如果它们是数字),如果最后两个数字是 alpha,那么我希望它将它附加到我的源列表中,并且然后我想创建一个新的 col 命名为:

df['Source'] = Source

这将是满足我的 if 语句要求的任何内容。虽然我一直收到这个错误

ValueError: Length of values does not match length of index

如果这个新列中的其余列是 Nan 我没问题,我只是希望它使用 if 语句指定的参数来创建列。我只是不明白为什么它还没有这样做。

     Num_col   Country 
1 123456HK Georgia
2 273HH123 Georgia
3 123456HK Georgia
4 273HH123 Georgia
5 123456HK Georgia

所以当我运行那个循环时,我希望它返回的是这个

     Num_col   Country   Source
1 123456HK Georgia Num
2 273HH123 Georgia
3 123456HK Georgia Num
4 273HH123 Georgia
5 123456HK Georgia Num

所以基本上只需添加一个名为 source 的列,然后仅添加与 if 语句匹配的列中指定名称为 Num 的值,该名称在 if 语句之后指定。

最佳答案

您可以使用 apply 函数遍历 Num_col 列的所有行并应用一个函数。在这种情况下,该函数会检查您指定的条件,并根据条件是否满足返回不同的值。

import numpy as np # for the np.NaN value
df['Source'] = df['Num_col'].apply(lambda nc: 'Num' if nc[0:6].isdigit() and nc[6:8].isalpha() else np.NaN)

# Output:
Country Num_col Source
0 Georgia 123456HK Num
1 Georgia 273HH123 NaN
2 Georgia 123456HK Num
3 Georgia 273HH123 NaN
4 Georgia 123456HK Num

关于python - 循环并制作新列python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44075711/

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