Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 迭代列的条件以查找其他列值_Python_Pandas - Fatal编程技术网

Python 迭代列的条件以查找其他列值

Python 迭代列的条件以查找其他列值,python,pandas,Python,Pandas,我试图迭代“出生”列,以找到特定的年龄组来计算这些组的类别项目 我的数据集如下所示 data = pd.DataFrame({'birth': ['1/12/1980', '2/6/1992', '6/6/1975', '6/3/2000'], 'problem':['cat3', 'cat2', 'cat1' , 'cat1']}) birth problem 0 1/12/1980 cat3 1 2/6/1992 cat2 2 6/6/1975 c

我试图迭代“出生”列,以找到特定的年龄组来计算这些组的类别项目

我的数据集如下所示

data = pd.DataFrame({'birth': ['1/12/1980', '2/6/1992', '6/6/1975',
'6/3/2000'], 'problem':['cat3', 'cat2', 'cat1' , 'cat1']})


    birth   problem
0   1/12/1980   cat3
1   2/6/1992    cat2
2   6/6/1975    cat1
3   6/3/2000    cat1
..   ......     ....
15488  9/9/2010    cat55
正确的输出可能如下所示:

Young 1990-2019:Cat1:55、cat2:154、cat3:84、cat6:5554

青少年:1990-1975:Cat1:99、cat2:5121、cat3:5445

中年:1975年及以前:cat1:99、cat2:545、cat82:644

删除标点符号,将类型转换为字符串,并尝试以下操作:

for i in range(len(yas2)):
    yas3.append(int(yas2[i][-4:]))
然后迭代条件,但我无法对问题列进行积分和计数。

首先按转换列,按装箱,最后按组计数:

第一次转换列依据、装箱依据和最后一次获取每组计数依据:

1980年1月12日是1。十二月十二号。1980年1月?1月12日是1。十二月十二号。一月
data = pd.DataFrame({'birth': ['1/12/1980', '2/6/1992', '6/6/1975','6/3/2000'], 
                     'problem':['cat3', 'cat2', 'cat1' , 'cat1']})

data['birth'] = pd.to_datetime(data['birth'], dayfirst=True)

bins = [0, 1975, 1990, 2019]
labels= ['MiddleAged','YoungAdult','Young']
data['bins'] = pd.cut(data['birth'].dt.year, bins=bins, labels=labels)

print (data)
       birth problem        bins
0 1980-12-01    cat3  YoungAdult
1 1992-06-02    cat2       Young
2 1975-06-06    cat1  MiddleAged
3 2000-03-06    cat1       Young

df = data.groupby(['bins','problem']).size().reset_index(name='count')
print (df)
         bins problem  count
0  MiddleAged    cat1      1
1  YoungAdult    cat3      1
2       Young    cat1      1
3       Young    cat2      1