gpt4 book ai didi

python - 如何在 Pandas 数据框中进行包含空格分隔符的列字符串连接?

转载 作者:行者123 更新时间:2023-12-05 00:58:50 29 4
gpt4 key购买 nike

我是一个Pandas DataFrame如下:

df = pd.DataFrame({
'id': [1,2 ,3],
'txt1': ['Hello there1', 'Hello there2', 'Hello there3'],
'txt2': ['Hello there4', 'Hello there5', 'Hello there6'],
'txt3': ['Hello there7', 'Hello there8', 'Hello there9']
})
df

id txt1 txt2 txt3
1 Hello there1 Hello there4 Hello there7
2 Hello there2 Hello there5 Hello there8
3 Hello there3 Hello there6 Hello there9

我想连接列 txt1txt2txt3。到目前为止,我能够实现如下:

df['alltext'] = df['txt1']  + df['txt2'] + df['txt3']
df

id txt1 txt2 txt3 alltext
1 Hello there1 Hello there4 Hello there7 Hello there1Hello there4Hello there7
2 Hello there2 Hello there5 Hello there8 Hello there2Hello there5Hello there8
3 Hello there3 Hello there6 Hello there9 Hello there3Hello there6Hello there9

但是如何在 Pandas 中连接时在两列字符串之间引入 空格 字符?

我刚刚开始学习 Pandas。

最佳答案

您还可以在列之间添加分隔符:

df['alltext'] = df['txt1']  + ' ' + df['txt2'] + ' ' + df['txt3']

或按 DataFrame.filter 过滤仅列名称中带有 txt 的列,并使用 apply 每行使用 join:

df['alltext'] = df.filter(like='txt').apply(' '.join, axis=1)

或仅按 DataFrame.select_dtypes 过滤对象列- 大多数情况下,带有对象 dtype 的 Series 将是 string - 但它可以是任何 Python object :

df['alltext'] = df.select_dtypes('object').apply(' '.join, axis=1)

或按位置选择列 - 所有列均未按 DataFrame.iloc :

df['alltext'] = df.iloc[:, 1:].apply(' '.join, axis=1)

感谢@Jon Clements 提供的解决方案,以便更好地将列名与 txt 和数字匹配:

df['alltext'] = df.filter(regex=r'^txt\d+$').apply(' '.join, axis=1)

关于python - 如何在 Pandas 数据框中进行包含空格分隔符的列字符串连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56302582/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com