python - Pandas:将列条目合并为一行
问题描述
我有以下数据集,其中“事务详细信息”列存储每个条目的所有值,但在不同的行中,当它应该将每个条目存储在同一行中时。有什么办法可以做到这一点,以便如果调用“事务详细信息”的第一个值,则打印出所有相关行,而不仅仅是第一行?
也许
解决方案
使用df
您的数据框,您可以执行以下操作:
import numpy as np
import pandas as pd
df_new = df[~df.Date.isna()].reset_index(drop=True)
df_new["Transaction Details"] = (
df["Transaction Details"]
.groupby(np.where(df.Date.isna(), 0, 1).cumsum())
.apply(lambda col: ", ".join(str(item) for item in col))
.reset_index(drop=True)
)
仅作为说明:结果 - df_new
- 对于以下数据框
df = pd.DataFrame(
{
"Date": [1, np.NaN, np.NaN, 2, np.NaN, np.NaN, np.NaN],
"Transaction Details": ["a", "b", "c", "d", "e", "f", "g"]
}
)
Date Transaction Details
0 1.0 a
1 NaN b
2 NaN c
3 2.0 d
4 NaN e
5 NaN f
6 NaN g
是
Date Transaction Details
0 1.0 a, b, c
1 2.0 d, e, f, g
如果df["Transaction Details"]
只包含字符串,那么你可以替换
.apply(lambda col: ", ".join(str(item) for item in col))
与.apply(", ".join)
.
推荐阅读
- python - re.findall() 有时返回全部有时最后返回
- javascript - 如何在 MaterializeCSS 中将颜色绑定到卡片
- node.js - 使用 Mongoose,初始化已经包含嵌入数据的新对象实例的正确方法是什么?
- python - 抵押计算器,不能用变量作为整数,做数学公式
- python - 小提琴在 Python 中以对数标度绘制问题
- c++ - 简单的 C++ 'Hello World' 程序的执行时间长
- reactjs - React-hooks 不更新状态
- javascript - 由于复选框的关闭状态,PDF java 脚本导致输出字段中的“OFF”值
- javascript - 将对象转换为数组并相应地分配其位置
- asp.net-mvc - 哪种架构/思维方式适合构建用户可以购买 Azure 等功能的 Web 应用程序?