我有以下 pandas 数据框 df,前几个条目是:
Input Output
0 hj1234 2
1 gu0998 5
2 iu5678 7
3 56h781 11
我需要将它转换为 2 个单独的列表元组,如下所示:
my_inputs = [
(h, j, 1, 2, 3, 4),
(g, u, 0, 9, 9, 8),
(i, u, 5, 6, 7, 8),
(5, 6, h, 7, 8, 1)]'
my_outputs =[(2,),
(5,),
(7,),
(11,)]
我曾在 excel 中使用连接函数尝试过此操作,但是该函数的最大长度限制为一行中可以连接的字符数。所以我想用 python 来做。请协助
最佳答案
如果您真的想要,可以使用 applymap
和 zip
来完成。
a, b = map(list, zip(*df.applymap(lambda x: (x, )).values.tolist()))
a = list(map(tuple, [a_[0] for a_ in a]))
a
# [('h', 'j', '1', '2', '3', '4'),
# ('g', 'u', '0', '9', '9', '8'),
# ('i', 'u', '5', '6', '7', '8'),
# ('5', '6', 'h', '7', '8', '1')]
b
# [(2,), (5,), (7,), (11,)]
另一种选择是单独处理每一列。
a = list(map(tuple, df['Input']))
b = [(x, ) for x in df['Output']]
a
# [('h', 'j', '1', '2', '3', '4'),
# ('g', 'u', '0', '9', '9', '8'),
# ('i', 'u', '5', '6', '7', '8'),
# ('5', '6', 'h', '7', '8', '1')]
b
# [(2,), (5,), (7,), (11,)]
关于python - 如何从 Dataframe 列形成元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54249182/