python - 将带有列表的 Pandas 列转换为字符串
问题描述
我正在尝试转换必须转换的熊猫数据框列,list for each row
但string in each row
不知何故它没有转换。这是我从其他答案中尝试过的。
代码:
import pandas as pd
import numpy as np
data = pd.DataFrame.from_dict(dict, orient = 'index') # save the given data below in dict variable to run this line
第一种方法:
data['tags'] = data['Tags'].apply(lambda x: ' '.join(map(str, x)))
第二种方法:
data['tags']=[''.join(map(str,item)) for item in data['Tags']]
但是这两个都给了我列中相同的字符串列表tags
。如下所示,
0 ['python', 'windows', 'pip', 'pygame', 'pycharm']
1 ['converters', 'dxf', 'dwg']
2 ['python', 'regex', 'nlp']
3 ['sql', 'join', 'dynamic', 'logic', 'case']
4 ['r-markdown', 'hugo', 'blogdown']
Name: tags, dtype: object
我想要这种形式
0 'python', 'windows', 'pip', 'pygame', 'pycharm'
1 'converters', 'dxf', 'dwg'
2 'python', 'regex', 'nlp'
3 'sql', 'join', 'dynamic', 'logic', 'case'
4 'r-markdown', 'hugo', 'blogdown'
Name: tags, dtype: object
这是使用 data.head(5).to_dict(orient = 'index') 的数据(前 5 行)
{'Tags': {0: "['python', 'windows', 'pip', 'pygame', 'pycharm']",
1: "['converters', 'dxf', 'dwg']",
2: "['python', 'regex', 'nlp']",
3: "['sql', 'join', 'dynamic', 'logic', 'case']",
4: "['r-markdown', 'hugo', 'blogdown']"},
'cleaned_text': {0: 'matter pip version instal specific python version read round still stuck upgrade python 3 7 x python 3 8 1 windows 10 go cmd prompt check pip instal module',
1: 'convert dwg dxf node php jave etc convert dwg file dxf node js python java already try ogr2ogr success thank advance',
2: 'match text base string list extract subsection python try generate structure earning call text look like following sample operator lady gentleman thank stand welcome xyz fourth quarter',
3: 'sql dynamically join table various column first time posting use case want join sale datum master agreement table determine applicable fee transactional level hard part agreement',
4: 'ok update hugo run 2 year old version hugo academic theme blogdown late version hugo ubuntu 19 10 repos 0 58 new version 0 65 download hugo website'}}
解决方案
我认为您正在寻找的是:
data['tags'] = data['Tags'].apply(lambda x: ' '.join(x))
例子
ser = pd.Series([['python', 'windows', 'pip', 'pygame', 'pycharm'],
['converters', 'dxf', 'dwg'],
['python', 'regex', 'nlp'],
['sql', 'join', 'dynamic', 'logic', 'case'],
['r-markdown', 'hugo', 'blogdown']])
ser.apply(lambda x: ' '.join(x))
会产生
0 python windows pip pygame pycharm
1 converters dxf dwg
2 python regex nlp
3 sql join dynamic logic case
4 r-markdown hugo blogdown
dtype: object
如果您想要它与您展示的完全一样,那么您可以执行以下操作
ser.apply(lambda x: "'" + "', '".join(x) + "'")
这将产生
0 'python', 'windows', 'pip', 'pygame', 'pycharm'
1 'converters', 'dxf', 'dwg'
2 'python', 'regex', 'nlp'
3 'sql', 'join', 'dynamic', 'logic', 'case'
4 'r-markdown', 'hugo', 'blogdown'
dtype: object
推荐阅读
- amazon-web-services - 从 AWS S3 存储桶并行下载文件
- pandas - 在熊猫数据框中删除空值后出现键错误
- spring-boot - Spring Security 使用有效的客户端 ID 和客户端密码抛出 401 错误
- c# - 我想在我的 C# 项目中使用 System.Threading 加快计算速度
- sql - 我的 TO_DATE 似乎无法正常运行
- html - 需要修复将鼠标悬停在按钮上的问题?
- java - 使用循环后,我的扫描仪问题加倍,出现异常错误
- json - 从 Firebase 获取原始 JSON 到 Flutter
- javascript - Bootstrap 模态轮播重复内容
- python - 无法在 Python3 中将 NoneType 转换为 Float