如何从另一个df列中制作唯一值的df?

时间:2020-09-23 20:33:41

标签: pandas

我正在尝试仅使用来自另一个df的唯一值来创建df。这是我的主意

columns = df.columns
df_uniquevalues = pd.DataFrame()

for i in range(len(columns)):
    df_uniquevalues[columns[i]] = df[columns[i]].unique()
    i += 1

我的想法是通过for循环提取唯一值。希望你能理解。但是由于该原因而发生错误,即“值的长度与索引的长度不匹配”。

您有更好的主意吗? 或者,就是我可以添加列而不会出现索引问题的方式?

非常感谢您!

2 个答案:

答案 0 :(得分:0)

由于您有多种选择,因此不太确定“唯一值”的含义:整行是唯一的?只有一个值是唯一的吗?

无论如何,熊猫的drop_duplicates确实可以满足您的要求。另一种选择是使用numpy.unique,它接收一个numpy数组(也可以使用数据框),并且仅返回唯一值。

答案 1 :(得分:0)

df_uniquevalues = df.drop_duplicates()

Documentation讨论了各种参数选项。

通常,循环并不是熊猫的理想之选。您正在寻找的操作几乎总是矢量化版本。