我有一些Excel文件,其中每个文件有多个工作表,每个工作表看起来都有点像这样(但更长):
Sample CD4 CD8
Day 1 8311 17.3 6.44
8312 13.6 3.50
8321 19.8 5.88
8322 13.5 4.09
Day 2 8311 16.0 4.92
8312 5.67 2.28
8321 13.0 4.34
8322 10.6 1.95
第一列实际上是四个单元格在垂直方向上合并的。
当我使用pandas.read_excel 读取时,获得的DataFrame看起来像这样:
Sample CD4 CD8
Day 1 8311 17.30 6.44
NaN 8312 13.60 3.50
NaN 8321 19.80 5.88
NaN 8322 13.50 4.09
Day 2 8311 16.00 4.92
NaN 8312 5.67 2.28
NaN 8321 13.00 4.34
NaN 8322 10.60 1.95
我应该如何让Pandas理解合并单元格,或者快速轻松地删除NaN并按适当的值进行分组?(一种方法是重置索引,逐步查找值并用值替换NaN,传入天数列表,然后将索引设置为该列。但似乎应该有更简单的方法。)
fillna
方法有一个axis
参数,用于控制填充的方向。若要逐行填充DataFrame中所有NaN值,您可以使用df = df.fillna(method='ffill', axis=1)
。若只想填充特定行,请使用df.loc
或者df.iloc
。例如,df.loc[mask] = df.loc[mask].fillna(method='ffill', axis=1)
。 - unutbuffill
进行fillna
是可以的,只要合并单元格后不是紧跟着一个故意留空的单元格就行。 - PlasmaBinturong