Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.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 如何将元组连接到数据帧中的字符串?_Python_Pandas_Tuples - Fatal编程技术网

Python 如何将元组连接到数据帧中的字符串?

Python 如何将元组连接到数据帧中的字符串?,python,pandas,tuples,Python,Pandas,Tuples,我正在尝试将元组连接到pandas dataframe的一列中,并将该字符串放在一个新的、单独的列中 例如: df = pd.DataFrame({'Number': ['001', '002', '003'], 'Tuple': [('hey', 'you'), ('you', 'can'), ('can', 'go')]}) 我使用以下方法测试了连接: ' '.join(_df.Tuple[0]) 输出如下所示: “你好” 但是,当我尝试将其扩展到数

我正在尝试将元组连接到pandas dataframe的一列中,并将该字符串放在一个新的、单独的列中

例如:

df = pd.DataFrame({'Number': ['001', '002', '003'],
                   'Tuple': [('hey', 'you'), ('you', 'can'), ('can', 'go')]})
我使用以下方法测试了连接:

' '.join(_df.Tuple[0])
输出如下所示:

“你好”

但是,当我尝试将其扩展到数据帧中的
Tuple
列的其余部分时:

df['String'] = ' '.join([entry for entry in df.Tuple])

我收到一个类型错误:
TypeError:sequence项0:预期的str实例,找到的tuple
。当我研究这个错误时,我看到了一个适用于列表但不适用于数据帧的示例。如何遍历数据帧,将每行中的元组连接起来,并将这些字符串放入新列中?

它不起作用的原因是,列表理解返回的元组是不可变的:

([entry for entry in df.Tuple])

返回

[('hey', 'you'), ('you', 'can'), ('can', 'go')]
一个更简单的方法是在行级别上对元组中的每个项使用聚合方法

df['Tuple'].agg(' '.join)

out:
0    hey you
1    you can
2     can go
Name: Tuple, dtype: object

您可以尝试以下方法:


df['String']=df['Tuple'].apply(lambda x:'.join(x))

来自OP方法:
df.Tuple=['''.join(entry)for entry in df.Tuple]
(作为OP的注意事项)这对我的示例数据帧有效,但在我的实际数据帧上出现了一个新错误,即
TypeError:'float'对象不可写
。我不能真正地将它作为专有的共享,甚至不知道如何用测试数据帧复制错误。感谢您的帮助和快速回答!在nellac77之前添加
填充NA(“”)
或过滤掉NA行