簡體   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