我有一个包含两列的数据帧,我希望遍历这两列。其思想是找到项目出现的任何行(在任一列中),然后将该行移动到单独的数据帧中。下面的例子,单词很难。你知道吗
df1型:
fname lname fnameNum lnameNum fnameWeight lnameWeight fname+num lname+num
A B 1 1 25 35 A,1 B,1
X Z 3 9 2 17 X,3 Z,9
N M 8 7 14 15 N,14 M,15
B A 1 1 35 25 B,1 A,1
这样做的目的是:
获取第一行,并将其复制到新的数据帧
df2型:
fname lname fnameNum lnameNum fnameWeight lnameWeight fname+num lname+num group
A B 1 1 25 35 A,1 B,1 1
然后,取fname+num
的值并查看df1中的哪些行包含精确匹配,同时搜索fname+num
和lname+num
。你知道吗
一旦匹配完成并且所有的行都被复制过来,我就想从df1中删除它们。这使得df2如下所示:
fname lname fnameNum lnameNum fnameWeight lnameWeight fname+num lname+num group
A B 1 1 25 35 A,1 B,1 1
B A 1 1 35 25 B,1 A,1 1
df1如下所示:
fname lname fnameNum lnameNum fnameWeight lnameWeight fname+num lname+num
X Z 3 9 2 17 X,3 Z,9
N M 8 7 14 15 N,14 M,15
我的目标是在df1的第一个元素上再次执行相同的操作,并一直这样做,直到df1实际上是空的。你知道吗
我写的解决这个问题的方法是:
df2.iloc[len(df2)] = df1.iloc[0, :] #get the first row of df1, copy to df2
for row in df1.iterrows():
for row in df2.iterrows():
if df2['fname+num'].isin((df1['fname+num' or df1['lname+num'])):
df2.loc[len(df2)] = df1.iloc[row]#if there is a match between the df2['fname+num'][0] and any element of any row in df1['fname+num' | 'lname+num'] then copy that entire row from df1 to df2
未显示*删除df1中存在于df2中的所有行(超出范围)
我想您想以一种特定的方式对数据帧进行排序,我会首先在'fname+num'中找到每个不同值的第一个位置,然后
map
列'fname+num'和'lname+num',获得每行两列的min
和sort
的值:你得到
df2
:带着对注释的期望编辑,我想说您应该更改
dict_order
,在这里,由于this method,元素之间的所有连接都在创建剩下的代码也一样
相关问题 更多 >
编程相关推荐