将列值合并到列表中

用户名

我在下面的代码中尝试将列中的所有值合并到数据帧的一个单元格中的列表中,例如下面的示例“输出df”。我有一个像下面的“ df”数据框这样的源数据框。这段代码并没有完全实现我想要的功能,而且看起来有些笨拙。有谁知道对熊猫说的更好的方法?

码:

corrLst=[df[df[x]!=''][x].tolist() for x in df.columns.tolist()]
corrdict=dict(zip(df.columns.tolist(),corrLst))

样本df:

field1  field2
'a' 'b'
    'c'
'd' 
'e' 'f'

输出df:

field1  field2
['a','d','e'] ['b','c','f']
ky

用替换空格np.nan,然后执行:

[sorted(list(set(i))) for i in df.ffill().values.T.tolist()]

因此,总而言之:

pd.DataFrame([[sorted(list(set(i))) for i in df.ffill().values.T.tolist()]],\
                                                           columns=df.columns)

      field1     field2
0  [a, d, e]  [b, c, f]

或为了保持列表的原始顺序,请使用:

from collections import OrderedDict
pd.DataFrame([[list(OrderedDict.fromkeys(i)) for i in df.ffill().values.T.tolist()]],\
                                                            columns=df.columns)

            field1           field2
0  ['a', 'd', 'e']  ['b', 'c', 'f']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章