gpt4 book ai didi

python - Pandas:使用合并单元格读取 Excel

转载 作者:IT老高 更新时间:2023-10-28 20:53:04 37 4
gpt4 key购买 nike

我有包含多个工作表的 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,传入天数列表,然后将索引设置为列。但似乎应该有一个更简单的方法。)

最佳答案

您可以使用 Series.fillna前向填充 NaN 值的方法:

df.index = pd.Series(df.index).fillna(method='ffill')

例如,

In [42]: df
Out[42]:
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

[8 rows x 3 columns]

In [43]: df.index = pd.Series(df.index).fillna(method='ffill')

In [44]: df
Out[44]:
Sample CD4 CD8
Day 1 8311 17.30 6.44
Day 1 8312 13.60 3.50
Day 1 8321 19.80 5.88
Day 1 8322 13.50 4.09
Day 2 8311 16.00 4.92
Day 2 8312 5.67 2.28
Day 2 8321 13.00 4.34
Day 2 8322 10.60 1.95

[8 rows x 3 columns]

关于python - Pandas:使用合并单元格读取 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22937650/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com