python - 使用新列更新熊猫数据框
问题描述
我想创建一个包含行中所有不同值的新列。一行中的每个值都是一个字符串(不是列表)。
这是数据框的样子:
+-----------------------------+-------------------------+---------------------------------------------+
| first | second | third |
+-----------------------------+-------------------------+---------------------------------------------+
|['able', 'shovel', 'door'] |['shovel raised'] |['shovel raised', 'raised', 'door', 'shovel']|
|['grade control'] |['grade'] |['grade'] |
|['light telling', 'love'] |['would love', 'closed'] |['closed', 'light'] |
+-----------------------------+-------------------------+---------------------------------------------+
这是创建具有不同值的新列后数据框的外观。
df = pd.DataFrame({'first': "['able', 'shovel', 'door']" , 'second': "['shovel raised']", 'third': "['shovel raised', 'raised', 'door', 'shovel']", "Distinct_set": "['able', 'shovel', 'door', 'shovel raised', 'raised']" }, index = [0])
我该怎么做?
解决方案
这个怎么样:
import pandas as pd
import numpy as np
df = pd.DataFrame([[['able', 'shovel', 'door'], ['shovel raised'], ['shovel raised', 'raised', 'door', 'shovel']], [['grade control'], ['grade'], ['grade']], [['light telling', 'love'], ['would love', 'closed'], ['closed', 'light']]], columns=['first', 'second', 'third'])
df.apply(lambda row: [np.unique(np.hstack(row))], raw=True, axis=1)
最后一个命令产生:
0 [[able, door, raised, shovel, shovel raised]]
1 [[grade, grade control]]
2 [[closed, light, light telling, love, would lo...
可以保存在数据框的新列中:
df['Distinct_set'] = df.apply(lambda row: [np.unique(np.hstack(row))], raw=True, axis=1)
推荐阅读
- reactjs - 在 react-konva 上动态渲染数据库中的图像
- selenium - XPath:沿路径传递属性值
- ldap - LDAP sudoers sudoHost 通配符
- form-recognizer - 已使用无法在 MS Flow 中检测到的标签进行训练的表单识别器模型
- r - 如何改变ggplot中椭圆的半透明度?
- c# - 将输入数据从 Web 应用程序保存到数据库
- ios - 为什么我的 sendEmailVerification(beforeUpdatingEmail) 函数不总是返回错误?
- java - 减小签名的 apk 大小
- python - ValueError:无法将输入数组从形状(424,16,3)广播到形状(128,160,3)
- github - 将 GitHub 操作标记为可选