检查具有列表的Dataframe单元格中的值

2024-09-29 23:24:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下建议:

df = pd.DataFrame(columns=['Place', 'PLZ','shortName','Parzellen'])

new_row1 = {'Place':'Winterthur', 'PLZ':[8400, 8401, 8402, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411], 'shortName':'WIN', 'Parzellen':[]}
new_row2 = {'Place':'Opfikon', 'PLZ':[8152], 'shortName':'OPF', 'Parzellen':[]}
new_row3 = {'Place':'Stadel', 'PLZ':[8174], 'shortName':'STA', 'Parzellen':[]}
new_row4 = {'Place':'Kloten', 'PLZ':[8302], 'shortName':'KLO', 'Parzellen':[]}
new_row5 = {'Place':'Niederhasli', 'PLZ':[8155,8156], 'shortName':'NIH', 'Parzellen':[]}
new_row6 = {'Place':'Bassersdorf', 'PLZ':[8303], 'shortName':'BAS', 'Parzellen':[]}
new_row7 = {'Place':'Oberglatt', 'PLZ':[8154], 'shortName':'OBE', 'Parzellen':[]}
new_row8 = {'Place':'Bülach', 'PLZ':[8180], 'shortName':'BUE', 'Parzellen':[]}

df = df.append(new_row1, ignore_index=True)
df = df.append(new_row2, ignore_index=True)
df = df.append(new_row3, ignore_index=True)
df = df.append(new_row4, ignore_index=True)
df = df.append(new_row5, ignore_index=True)
df = df.append(new_row6, ignore_index=True)
df = df.append(new_row7, ignore_index=True)
df = df.append(new_row8, ignore_index=True)

print (df)

现在我有一个像8405这样的数字,我想知道位置或整个,它在^{下有这个数字

我也尝试使用类,但很难获得所有对象的所有编号,因为我希望能够调用列表中的所有PLZ,并检查它所属的位置(如果有编号)。也许有一个明显更好的方法,我只是不知道


Tags: truedfnewindexplaceignorerow1row2
1条回答
网友
1楼 · 发布于 2024-09-29 23:24:16

尝试使用布尔掩蔽和map()方法:

df[df['PLZ'].map(lambda x:8405 in x)]

通过布尔掩蔽和agg()方法:

df[df['PLZ'].agg(lambda x:8405 in x)]
#you can also use apply() in place of agg

上述代码的输出:

    Place       PLZ                                             shortName   Parzellen
0   Winterthur  [8400, 8401, 8402, 8404, 8405, 8406, 8407, 840...   WIN     []

相关问题 更多 >

    热门问题