从熊猫中的对象中选择

问题描述 投票:2回答:1

我在column1中有一个带有对象的数据帧。该对象每行包含多个值。我需要迭代对象中的所有值,但是我只能选择整行。如何选择对象行中的值?

数据帧:

d = {'column1': [{1,2,3},{4,5,6}]}
df = pd.DataFrame(d)

代码到目前为止:

df.column1.iloc[0]

这选择{1,2,3},但是我想只选择第一个元素1。

python pandas object select
1个回答
4
投票

这里有必要将值转换为列表然后索引:

d = {'column1': [{1,2,3},{4,5,6}]}
df = pd.DataFrame(d)
print (df.column1.apply(lambda x: list(x)[0]))
0    1
1    4
Name: column1, dtype: int64

或者使用nextiter

print (df.column1.apply(lambda x: next(iter(x))))

优势也适用于空sets - 可能设置默认值:

d = {'column1': [{1,2,3},{4,5,6}, {}]}
df = pd.DataFrame(d)

print (df.column1.apply(lambda x: next(iter(x), 'no match')))
0           1
1           4
2    no match
Name: column1, dtype: object
© www.soinside.com 2019 - 2024. All rights reserved.