将列中的字符串集列表转换为新列
Posted
技术标签:
【中文标题】将列中的字符串集列表转换为新列【英文标题】:Convert List of String Sets in Column to New Column 【发布时间】:2022-01-17 07:45:27 【问题描述】:df.x
0 []
1 [cat=1, data=adjks, cat=1, data=pqoek, cat=2, data=hjksy]
2 []
3 [cat=1, data=alpqi]
4 [cat=5, data=weee, cat=6, data=wolpwolp]
Name: x, dtype: object
我有一个专栏,其中 ea. row 是集合的列表。我只对 cat=1 的集合感兴趣。
为 ea 迭代此列的最佳方式是什么?行并在新列中提取 cat=1 'data' 值?
我希望得到什么
new_column
0
1 adjks, pqoek
2
3 alpqi
4
【问题讨论】:
你能提供一个可重现的例子吗? 嗨!这与我的代码非常相似。这是数据中的一堆乱码,因为它打算使用另一个表进行解码。 @FrancoPiccolo 编辑:澄清 【参考方案1】:如果它是一个字符串列表,那么我们可以apply
一个直接作用于集合的函数:
out = df['x'].apply(lambda lst: ', '.join(tuple(s-set(['cat=1']))[0].split('=')[1] for s in lst if 'cat=1' in s))
输出:
0
1 adjks, pqoek
2
3 alpqi
4
dtype: object
【讨论】:
嗨! X 列是 ea 的字符串集列表。排。 'Cat=1' 是一个字符串,即我得到一个错误: KeyError:# import Pandas library
import pandas as pd
# create dataframe with a column (names) having list-like elements
data = 'id': [1, 2, 3],
'names': ["Tom,Rick,Hardy", "Ritu,Shalini,Anjana", "Ali,Amir"]
df = pd.DataFrame(data)
print(df)
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于将列中的字符串集列表转换为新列的主要内容,如果未能解决你的问题,请参考以下文章
将列从 varchar 转换为 nvarchar 是不是会更改存储在列中的字符串的编码?