python - 格式化数据集的问题

标签 python database pandas numpy dataframe

从 XML 中抓取这些数据并将其存储到 Pandas DataFrame 后,我想问一下是否以及如何根据要求格式化数据。

Dataset Image (Updated)

问题 1: 基本上每三行需要通过移除 NaN 来组合,以表示一行。 例如,表示此数据的正确方法是:

  qid, qualid, val

0 2065887850, 227, (0,0,0,0,0,0,0,0,0,0)
1 2021905255,  30, (49214,.....,...,....) 

问题2:

在某些地方,val 变量实际上丢失了(原始数据中每隔三行),我需要为此放置一个 NaN。在这种情况下所需的输出将是。理想情况下,我需要一个解决这两个问题的解决方案。

  qid, qualid, val

0 2065887850, 227, (0,0,0,0,0,0,0,0,0,0)
1 2121905255,  23, (49214,.....,...,....) 
2 2834347850,  17, NaN
3 2121905255, 930, (14124,.....,...,....) 
4 2465212110, 227, (2,2,1,4,6,7,0,0,0,0)
5 2921905225, 130, NaN

最佳答案

您可以尝试将 dataframe 转换为字符串类型并按 3 行分组并添加行,

      col_1   col_2     col_3
0   29021214    NaN     NaN
1   NaN         227     NaN
2   NaN         NaN     0,0,0,0
4   20218343    NaN     NaN
5   NaN         30      NaN
7   324234      NaN     NaN
8   NaN         532     NaN
9   NaN         NaN     NaN


temp = df.col_1.notnull().cumsum()
df = df.replace(np.nan,'').astype(str)
df.groupby(temp).sum().replace('',np.nan)

输出:

    col_1       col_2   col_3
col_1           
1   29021214    227    0,0,0,0
2   20218343    30     NaN
3   324234      532.0   NaN

关于python - 格式化数据集的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53022258/

相关文章:

database - B+ 树节点大小

python - 绘制 datetime.date Pandas

python - 在 PySpark 中读取文件并将其转换为 Pandas Dataframe 时如何将第一行作为标题

python - 查找图像中对象的位置

database - 是否可以在 Palm Pre 上预加载 Sqlite DB?

python - 如何更改 Python 代码中的单元格格式?

python - pandas DataFrame 的 100% 面积图

python - 可以使这段代码更 Pythonic 吗?循环

python - 如何保留和绘制与测试集不相关的ID特征?

excel - 如何在 Microsoft Access 表单上使用网络摄像头捕获?