Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从Dataframe列形成元组列表_Python_Python 3.x_Pandas_List_Dataframe - Fatal编程技术网

Python 如何从Dataframe列形成元组列表

Python 如何从Dataframe列形成元组列表,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,我有以下数据帧df,前几个条目是: Input Output 0 hj1234 2 1 gu0998 5 2 iu5678 7 3 56h781 11 我需要将其转换为两个独立的列表元组,如下所示: my_inputs = [ (h, j, 1, 2, 3, 4), (g, u, 0, 9, 9, 8), (i, u, 5, 6, 7, 8), (5, 6, h,

我有以下数据帧df,前几个条目是:

     Input      Output
0    hj1234        2
1    gu0998        5
2    iu5678        7
3    56h781        11
我需要将其转换为两个独立的列表元组,如下所示:

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中使用concatenate函数实现这一点,但是该函数的最大长度为一行中可以连接的字符数。所以我尝试用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,)]

但这看起来不像是一个元组列表?至少,不是第一个。拥有单元素元组的意义是什么?这些是传递给某个函数进行验证的测试用例吗?也许这是mp.Pool的输入?我只是想理解这里的用例。您可以在下面看到我的答案。Alight,这些被假定为在纯python中用作函数的输入和输出,它们需要采用声明的形式,因为XOR示例需要它们,正如我指定的那样。谢谢您,但是我需要“a”这样:[('hj1234'),('gu0998'),('iu5678'),('56h781')]。请注意,列表项中的逗号已被删除,因此与您给出的不同。好心的assist@Kusi我在你的评论中看不到任何东西。另外,仅供参考,
('hj1234')
不是元组。忽略单个表达式周围多余的括号,结果是
('hj1234')
'hj1234'
相同。很抱歉,我已修改了注释,我在编写代码完成之前发送了它。请看更正。我知道它不是一个元组,但是我相信[('hj1234'),('gu0998'),('iu5678'),('56h781')]是一个元组(整体而不是单个条目)。如果我错了,请纠正我。@Kusi看到我在上面关于
('hj1234')
如何不是元组的评论。只需转到解释器并键入
print(键入('hj1234'))
。它将显示
。除非你纠正这种对语言语法的基本误解,否则我无法进一步帮助你。在你提问之前,你需要了解你想要什么。@Kusi你也没有回答我在你问题下的评论中的澄清,所以难怪你的期望和提供的答案之间存在差距。