Python学习笔记:拼接数据框中所有列
一、笨办法:循环拼接
import pandas as pd
import numpy as np
df = pd.DataFrame({'user_id':['A','B','C','D','E'],
'v0':['high','tall','high','one','two'],
'v1':np.random.rand(5),
'v2':np.random.rand(5),
'v3':np.random.rand(5),
'v4':np.random.rand(5),
'v5':np.random.rand(5)})
# 列数
num_columns = df.columns.shape[0]
# 列值
col_names = df.columns.values.tolist()
# 添加一列
df.loc[:, 'merged'] = ''
# 循环合并
for i in range(num_columns):
print('Concat:', col_names[i])
df.loc[:, 'merged'] = df.loc[:, 'merged'] + ' - ' + df[col_names[i]].astype(str)
二、次方法:str.join合并
# 数据字段需要先转换为字符类型
# 合并部分字段
df['concat'] = pd.Series(df[['user_id','v0','v1']].astype(str).fillna('').values.tolist()).str.join('')
# 合并全部字段
df['concat2'] = pd.Series(df.astype(str).fillna('').values.tolist()).str.join('')
三、再方法:apply循环
df['new'] = df.astype(str).apply('//'.join, axis=1)
四、快方法:sum求和
df['new'] = df.astype(str).values.sum(axis=1)
五、实际应用
# 合并v1-v10
result['final'] = pd.Series(result[['v'+str(x+1) for x in range(10)]].fillna('').values.tolist()).str.join('//')
# 筛选字段
result = result.filter(items=['id', 'final'])
参考链接:连接pandas数据框中的所有列
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2018-11-04 Python学习笔记:import sys模块(argv、path、platform、exit)
2018-11-04 Oracle学习笔记:wm_concat函数合并字段