繁体   English   中英

合并和内插2个dataframe列并从中创建唯一的数字列表

[英]python - combining and interpolating 2 dataframe column and creating unique number list from it

我的数据框中有这个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]

您所寻找的似乎是stackunique

>>> 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])

@上瘾

您非常接近要实现的目标。 通过连接数据non_unique_list列实现项目的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']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM