为了根据2个数据框信息创建一个新的数据框,我遇到了一些问题。
这是dataframe1
:
species seq_names value
dog seq_C 0.67
cat seq_F 1.4
cat seq_E 0.4
dolphin seq_F 0.7
dolphin seq_A 1.9
frog seq_A 0.8
frog seq_B 0.40
这里是另一个dataframe2
:
group_number col1
1 cat
1 dog
2 dolphin
2 frog
2 seq_X
2 seq_Y
您会看到2 groups
。想法是根据它们在df1中匹配的种类及其值将seq_names
添加到这些组中。
在这里,我应该得到一个new_df
,其中添加了seq_names
:
group_number sp_seq_names
1 cat
1 dog
1 seq_C
1 seq_F
1 seq_E
2 dolphin
2 frog
2 seq_A
2 seq_B
2 seq_X
2 seq_Y
为IMC编辑:如您所见,seq_X
和seq_Y
仍然存在。
group_number 1
获得了seq_names C,F and E
,因为所有位置都与该组中的至少一个物种匹配。
But the subtlety is here
:您还可以看到group1
获得了s eq_name F
,但group_number 2
却没有得到dolphin
也与该序列匹配的事实,但是{ {1}在此cat
的价值比dolphin
更好(1.4对0.7。)
因此seq_name
仅获得2 group_number 2
有人对使用熊猫有想法吗?
我尝试了一些合并操作:
seq_names A and B.
然后创建所需的df:
pd.merge(df2, df1, left_on=['col1'],right_on=['species'],how='outer')
group_number col1 species seq_names value
0 1 cat cat seq_F 1.40
1 1 cat cat seq_E 0.40
2 1 dog dog seq_C 0.67
3 2 dolphin dolphin seq_F 0.70
4 2 dolphin dolphin seq_A 1.80
5 2 frog frog seq_B 0.40
6 2 frog frog seq_A 0.80
我得到:
df=[]
for species, group in zip (df_new['seq_names'],df_new['group_number']):
df.append({'groups':group,'sp_seq_names':species})
for species, group in zip (df_new['species'],df_new['group_number']):
df.append({'groups':group,'sp_seq_names':species})
但是如您所见,我无法管理组之间共享的seq_name,并无法根据值确定哪个组获得此seq_name。
答案 0 :(得分:2)
ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.my_layout);
ConstraintSet set = new ConstraintSet();
set.clone(layout);
set.clear(R.id.cardOne, ConstraintSet.RIGHT);
set.applyTo(layout);