从 XML 中抓取这些数据并将其存储到 Pandas DataFrame 后,我想问一下是否以及如何根据要求格式化数据。
问题 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/