我有这样的数据
TEST_NUM SITE_NUM RESULT TEST_FLG TEST_TXT UNITS LO_LIMIT HI_LIMIT
0 100 0 -0.4284 P Continuity_PPMU XSCI V -1 -0.3
1 100 1 -0.4274 P Continuity_PPMU XSCI V -1 -0.3
2 100 2 -0.4276 P Continuity_PPMU XSCI V -1 -0.3
3 100 3 -0.4289 P Continuity_PPMU XSCI V -1 -0.3
4 101 0 -0.4569 P Continuity_PPMU XSCO V -1 -0.3TEST_TXT有53个唯一的值。
我想让我的数据像这样
LDO_Discharge V12 | Continuity_PPMU XSCI | Continuity_PPMU XSCO |Continuity_PPMU ADBUS0 |Continuity_PPMU ADBUS1 ....
1.04 |3.343 |1.91 | 2.1 | 3.1基本上,RESULT列的所有值都是不同的TEST_TXT并排的,作为一列。但是这里的诀窍是,LDO_Discharge V12有5512个值,Continuity_PPMU ADBUS0有5528个值。他们需要在SITE_NUM的基础上并肩作战.
因此,首先,LDO_Discharge V12行的SITE_NUM = 0,应该有第一行SITE_NUM =0的Continuity_PPMU ADBUS0,以此类推。他们应该加入,使他们有相同的SITE_NUM。
如果SITE_NUM是唯一的或者它们的计数是相等的,我会很容易地做到这一点,但情况并非如此(5512表示'LDO_Discharge V12‘,而5528表示'Continuity_PPMU ADBUS0’或其他值)。
我想问如何将"Continuity_PPMU ADBUS0“SITE_NUM与LDO_Discharge V12的SITE_NUM按顺序组合起来。
如果没有特定集合的值(假设“SITE_NUM =3”缺少"Continuity_PPMU XSCI",则可能因为不同的“TEST_TXT”s的计数不同),则应该在其中留下一个NULL。
这样的解释很难解释。如果需要更多的澄清,请告诉我。
发布于 2020-10-24 13:49:07
我不太明白你的预期输出应该是什么样子,所以如果你能澄清这一点,也许会有帮助。但是,根据我收集的信息,您应该看看一些pandas函数。因此:
查看axis = 1参数pd.concat,它让我们按照行的方向连接起来。
df = pd.concat(iterator, axis = 1) # returns a DataFrame但是,您可能想查看pd.DataFrame.groupby,然后查看pd.DataFrame.agg,在分组之后,您应该看看pd.DataFrame.sort_values,这可能是这样的:
df = pd.DataFrame()
gdf = df.groupby(by = columns_to_group).agg({column_agg: function_agg, ...}) # returns DataFrame after `agg`https://stackoverflow.com/questions/64513997
复制相似问题