我的数据框中有这个2整数列
from | to
----------
1 | 4
2 | 4
3 | 6
我希望将它们组合起来,我得到一个这样的列表:
[1, 4, 2, 4, 3, 6]
然后我想从该列表中创建一个唯一值,如下所示:
[1, 4, 2, 3, 6]
我该怎么做?
为了组合和插入2个数据帧,我尝试了这个:
' '.join(df['from'].astype('str') + ' ' + df['to'].astype('str'))
但我必须首先将它们转换为字符串,加入所有字符串,然后再将其拆分。我正在寻找更简单的方法来做到这一点。
为了在列表中查找唯一值,我尝试了:
list(set(non_unique_list))
但结果列表是:[1,2,3,4,6]
这是我不想要的东西。我正在寻找特别是这个顺序:[1, 4, 2, 3, 6]
答案 0 :(得分:1)
>>> import pandas as pd
>>> df = pd.DataFrame({'from': [1,2,3], 'to':[4,4,6]})
>>> df
from to
0 1 4
1 2 4
2 3 6
>>> df.stack()
0 from 1
to 4
1 from 2
to 4
2 from 3
to 6
dtype: int64
>>> df.stack().unique()
array([1, 4, 2, 3, 6])
答案 1 :(得分:1)
@addicted
你非常接近你想要达到的目标。通过加入数据框列获得non_unique_list
项后,您可以通过执行以下操作获取此列表并获得生成的订单
final_order_list = [non_unique_list[i] for i in range(len(non_unique_list)) if i == non_unique_list.index(non_unique_list[i])]
最终结果如下:
>>> final_order_list
['1', '4', '2', '3', '6']