Pandas:合并、连接和合并的第一步

2024-04-24 00:53:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像下面这样的数据帧,有3列12行。这12行是4个重复的类(三次)。我知道我从来没有1A,1D,2B和2D单元格的值,我总是有1B,1C,2A和2C单元格的值。你知道吗

enter image description here

我想把它转换成你在下面看到的那样,我把列名和行名结合起来,提取出所有的单元格,我知道这些单元格中总是有数据。 这样我将避免不必要的重复或不必要的空单元格。你知道吗

enter image description here

我试过阅读手册http://pandas.pydata.org/pandas-docs/stable/merging.html,但我有一些困难要采取正确的方法。给我一些建议?你知道吗

非常感谢


Tags: 数据方法orghttpdocspandashtml手册
1条回答
网友
1楼 · 发布于 2024-04-24 00:53:49

您可以使用:

#get index to MultiIndex in column
df = df.set_index(['class','date']).unstack(level=0)
#remove columns with all NaN, sort index
df = df.dropna(axis=1, how='all').sort_index(ascending=False)
#reset MultiIndex in columns, cast int to str in first level (1,2 values)
df.columns = [''.join((str(col[0]),col[1])) for col in df.columns]
#index to column
df.reset_index(inplace=True)
#reorder columns
df = df[df.columns[1:].union(df.columns[:1])]
print (df)
         1B        1C        2A            2C        date
0  1.462543  4.920529  4.496126  3.362060e+08  2016-10-31
1  3.931170  3.439862  2.453640  1.488948e+00  2016-10-30
2  3.550311  3.504713  3.224958  1.804881e+00  2016-10-29

相关问题 更多 >