如何检查列表列中每个列表中的元素是否都相同?
How to check if elements from each list in a column of liste are all the same?
我有一个 pd.dataframe,其中一列有列表,我需要创建一个新列,如果所有元素都相等,则 return 为真,否则为假
col1
col_lists
First
[a,b,d]
Second
[a,a]
这将是期望的结果:
col1
col_lists
new_col
First
[a,b,d]
False
Second
[a,a]
True
使用列表理解,
df["new_col"] = [True if len(set(l)) == 1 else False for l in df["col_lists"]]
路漫漫其修远兮,
new_col = []
for l in df["col_lists"]:
if len(set(l)) == 1:
new_col.append(True)
else:
new_col.append(False)
df["new_col"] = new_col
将列表转换为集合允许我们从该列表中获取所有唯一值。如果该列表的集合有多个值,那么这意味着该列表的所有位置都没有一个值。因此,在这种情况下,我们将新列的值设置为 False。否则,我们将其设置为 True。
试试这个:
df.assign(new_col = df['col_lists'].map(lambda x: len(set(x)) == 1))
我有一个 pd.dataframe,其中一列有列表,我需要创建一个新列,如果所有元素都相等,则 return 为真,否则为假
col1 | col_lists |
---|---|
First | [a,b,d] |
Second | [a,a] |
这将是期望的结果:
col1 | col_lists | new_col |
---|---|---|
First | [a,b,d] | False |
Second | [a,a] | True |
使用列表理解,
df["new_col"] = [True if len(set(l)) == 1 else False for l in df["col_lists"]]
路漫漫其修远兮,
new_col = []
for l in df["col_lists"]:
if len(set(l)) == 1:
new_col.append(True)
else:
new_col.append(False)
df["new_col"] = new_col
将列表转换为集合允许我们从该列表中获取所有唯一值。如果该列表的集合有多个值,那么这意味着该列表的所有位置都没有一个值。因此,在这种情况下,我们将新列的值设置为 False。否则,我们将其设置为 True。
试试这个:
df.assign(new_col = df['col_lists'].map(lambda x: len(set(x)) == 1))