python-3.x - 熊猫数据汇总
问题描述
我有一个模糊数据,如下所示。请注意,第一项有重复的名称(这很重要)。
('Alex', ['String1', 'String34'])
('Piper', ['String5', 'String64', 'String12'])
('Nicky', ['String3', 'String21', 'String42', 'String51'])
('Linda', ['String14'])
('Suzzane', ['String11', 'String36', 'String16'])
('Alex', ['String64', 'String34', 'String12', 'String5'])
('Linda', ['String3', 'String77'])
('Piper', ['String41', 'String64', 'String11', 'String34'])
('Suzzane', ['String12'])
('Nicky', ['String11', 'String51'])
('Alex', ['String77', 'String64', 'String3', 'String5'])
('Linda', ['String51'])
('Nicky', ['String77', 'String12', 'String34'])
('Suzzane', ['String51', 'String3'])
('Piper', ['String11', 'String64', 'String5'])
如果上述数据在一个名为“output.txt”的文件中,如何将其导入并汇总数据,如下所示?
[仅保留唯一名称,并且对于每个主名称,只会从所有存在的重复项中填充唯一字符串]
('Alex', ['String1', 'String34', 'String64', 'String12', 'String5', 'String77', 'String3'])
('Piper', ['String5', 'String64', 'String12', 'String11', 'String41', 'String34'])
('Nicky', ['String3', 'String21', 'String42', 'String51', 'String11', 'String77', 'String12', 'String34'])
('Linda', ['String14', 'String3', 'String77', 'String51'])
('Suzzane', ['String11', 'String36', 'String16', 'String12', 'String51', 'String3'])
解决方案
您可以将数据加载到 pandas 中dataframe
:
import pandas as pd
df = pd.DataFrame(data=[('Alex', ['String1', 'String34']),
('Alex', ['String64', 'String34', 'String12', 'String5']),
('Nicky', ['String11', 'String51']),
('Nicky', ['String77', 'String12', 'String34'])])
df = df.rename(columns={0:'name', 1:'strings'})
然后function
在 pandas 列上创建一个连接列表:
def concatenate(strings):
strings_agg = []
for string in strings:
strings_agg.extend(string)
return strings_agg
最后apply
是该列的函数:
df.groupby('name').apply(lambda x: concatenate(x['strings'])).to_frame()
推荐阅读
- node.js - Multer Grid Fs 存储下载而不是快速显示视频
- php - Laravel - 试图获取非对象的属性“id”
- angular - Angular 模块联合 - 共享远程组件
- java - 为什么部署在heroku中的spring boot open jdk 15失败
- c++ - Rabin-Karp算法代码中的负哈希值
- hyperledger-fabric - 错误:验证 DeltaSet 时出错:[Group] /Channel/Application 的策略不满足:隐式
- authentication - 如何获取使用 http only cookie 保存的刷新令牌?
- java - 我可以使用 keycloak 管理客户端通过刷新令牌刷新我的访问令牌吗?
- python - 通过 python 在 docker 容器外写入文件
- r - 在 R 中下载文件,其 URL 不以文件扩展名结尾