原始表格:
A B
-----------
1 2
1 4
2 3
3 5
3 6
2 7
5 100
6 100
7 100
4 100
1 2 3 5 100
1 2 3 6 100
1 2 7 100 NAN
1 4 100 NAN NAN
你好!我正在尝试使用Python从数据集中创建一棵树(参见原始表)。这里有关系-1映射到2,2映射到3,3映射到5,5映射到100。(100表示叶节点或树路径的结尾,1始终是根节点-所有路径都以1开头)首先,我想创建完整树路径的数组(请参见要获取的表),我尝试使用递归函数来实现,但它变得非常复杂。有没有想法,可以让我继续进行?或者是否有内置函数可以将第一张表转换为第二张表。
(主要目标:从“原始表”获得“要生成的表”)
我在这里附上了我的代码。
import pandas as pd
import numpy as np
data = {'A': [1, 1,2,3,3,2,1,6,5,7,4],
'B': [2,4,3,5,6,7,100,100,100,100]
}
df = pd.DataFrame (data, columns = ['A','B'])
print (df)
def filt(df,val):
return df[df.A==val]
c2=1
global vec
vec = np.array([c2])
def search(c2):
temp_df= filt(df,c2)
print(temp_df)
a=temp_df[temp_df.columns[1]]
for row in range(temp_df.shape[0]):
if a.iloc[row]!=100:
global vec
vec=np.append(vec,a.iloc[row])
search(a.iloc[row])
else:
vec=np.append(vec,a.iloc[row])
print(vec)
vec=vec[:-2]
search(c2)
A
和列B
代表什么意思?你是如何生成 df1 到 df2 的?为什么在 df2 中有四个1
,而在df1
中只有两个1
? - Ynjxsjmh