我正在从尚未针对分析进行优化的PDF导入数据。
数据已导入以下数据框中
NaN NaN Plant_A NaN Plant_B NaN
Pre 1,2 1.1 1.2 6.1 6.2
Pre 3,4 1.3 1.4 6.3 6.4
Post 1,2 2.1 2.2 7.1 7.2
Post 3,4 2.3 2.4 7.3 7.4
我想将其重组为以下形式:
Pre_1 Pre_2 Pre_3 Pre_4 Post_1 Post_2 Post_3 Post_4
Plant_A 1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4
Plant_B 6.1 6.2 6.3 6.4 7.1 7.2 7.3 7.4
我首先用逗号分隔第二列,然后将其与第一列结合起来,例如给出
Pre_1
和Pre_2
。但是,我一直很难将其与其余各列中的数据进行匹配。例如,Pre_1
和1.1
以及Pre_2
和1.2
任何帮助将不胜感激。
最佳答案
关于您的数据的一致性,我不得不做一些假设
from itertools import cycle
import pandas as pd
tracker = {}
for temporal, spec, *data in df.itertuples(index=False):
data = data[::-1]
cycle_plant = cycle(['Plant_A', 'Plant_B'])
spec_i = spec.split(',')
while data:
plant = next(cycle_plant)
for i in spec_i:
tracker[(plant, f"{temporal}_{i}")] = data.pop()
pd.Series(tracker).unstack()
Post_1 Post_2 Post_3 Post_4 Pre_1 Pre_2 Pre_3 Pre_4
Plant_A 2.1 2.2 2.3 2.4 1.1 1.2 1.3 1.4
Plant_B 7.1 7.2 7.3 7.4 6.1 6.2 6.3 6.4
关于python - 将Pandas DataFrame的各部分重塑为多种格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51968584/