我正在尝试选择 df
中的行,在每一行中,列值的设置大小为 > 1;
df = pd.DataFrame({'col': [1, 2, 3],
'a': [41, 4, 5],
'b': [3, 13, 6]})
df['concat'] = (df['a'].astype(str) + df['b'].astype(str))
df.groupby('concat')['col'].apply(set).to_dict()
但这仅适用于 set
到每一列 ('col') 值。
python 阻止我
df.groupby('concat')['col'].apply(lambda x: set(x) if len(set(x)) > 1).to_dict()
最佳答案
这里可以使用 str.len
因为 set
是可迭代的:
s = df.groupby('concat')['col'].apply(set)
d = s[s.str.len() > 1].to_dict()
print (d)
{'413': {1, 2}}
关于python - pandas 对列值应用 lambda 并选择那些设置大小大于 1 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49940115/