python - 熊猫垂直拆分列
问题描述
我有一个看起来像这样的数据框:
fname lname email
0 Homer Simpson homer.simpson@example.com
1 Jane Doe jane.doe@example.com
2 Samuel Tom "samuel.tom@example.com, kate.leo@example.com, billy.billerson@example.com"
我想要的是这样的:
fname lname email
0 Homer Simpson homer.simpson@example.com
1 Jane Doe jane.doe@example.com
2 Samuel Tom samuel.tom@example.com
3 kate.leo@example.com
4 billy.billerson@example.com
在底部 2 行的名字和姓氏中没有名字。
关于如何像这样垂直分割它的任何建议?
解决方案
使用pandas.DataFrame.pop
with join
ing的一种方法right
:
new_df = df.join(df.pop("email").str.split(", +").explode(True), how="right")
print(new_df.fillna("")) # To show nan as empty
输出:
fname lname email
0 Homer Simpson homer.simpson@example.com
1 Jane Doe jane.doe@example.com
2 Samuel Tom samuel.tom@example.com
3 kate.leo@example.com
4 billy.billerson@example.com
推荐阅读
- windows - 在 my.ini (Windows) 中设置证书路径后,MariaDB 变量“have_ssl”仍然禁用
- visual-studio - 为什么我在打开 Unity 时收到此套接字错误?我该如何解决?
- css - 背景图像显示带有滚动条
- java - 使用 Eclipselink 从 OracleDB 获取数据的时间很长
- elasticsearch - 弹性搜索按类型和索引获取文档与仅索引
- xml - xmlns 属性上的 Camel XPATH 选择包含
- python - pandas 中的 pd.concat 给出了 TypeError: cannot concatenate object of type '
'; 只有 Series 和 DataFrame obj 是有效的 - botframework - 在 MS Teams 中将 URL 作为弹出窗口/Iframe 打开
- python - 从 Python 中调用 Google Cloud 函数
- ios - UIViewPropertyAnimator 不尊重持续时间和延迟参数