Python 如何将元组连接到数据帧中的字符串?
我正在尝试将元组连接到pandas dataframe的一列中,并将该字符串放在一个新的、单独的列中 例如: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]) 输出如下所示: “你好” 但是,当我尝试将其扩展到数
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行