【发布时间】:2022-02-10 04:04:18
【问题描述】:
我有一个 Excel 文件,其中包含以下没有标题或索引的结构 - 我只添加了 Excel 中的列标题,而我的表中没有:
| A | B | C | D | E | ... | J | K |
|---|---|---|---|---|---|---|---|
| ABC | XLS | 1231341231 | 123123asdad1923 | NaN | NaN | ... | 123123asdad1923 |
| DEF | XLS | 1231231231 | 1231823asda9123 | NaN | askda213 | ... | 123123asdad1923 |
| XYZ | XLS | 1231231233 | 2138820394832sd | NaN | NaN | ... | asdasdq2ew12332 |
我需要删除所有包含NaN 的单元格,当为 NaN 时,将单元格向左移动。
输出应如下所示:
| A | B | C | D | E | ... | J | K |
|---|---|---|---|---|---|---|---|
| ABC | XLS | 1231341231 | 123123asdad1923 | 123123asdad1923 | |||
| DEF | XLS | 1231231231 | 1231823asda9123 | askda213 | ... | 123123asdad1923 | |
| XYZ | XLS | 1231231233 | 2138820394832sd | asdasdq2ew12332 |
我发现 this similar question 在 Stackoverflow 上掉线了,但答案没有做任何改变:
import pandas as pd
df = pd.read_excel('test.xlsx')
df = df.apply(lambda x: pd.Series(x.dropna().values))
df = df.fillna('')
df.to_excel("test_modified.xlsx", index=False, header=False)
任何想法如何实现这一目标?
谢谢。
【问题讨论】:
-
是否会有多个连续的 NaN 序列?例如
a b NaN NaN c d NaN NaN? -
在您的情况下“不工作”是什么意思?从输入到输出没有变化?一个错误?还有什么?
-
@richardec:感谢您的回复。它是完全动态的——我们可以有
a NaN b NaN,甚至可以有a b c NaN NaN NaN。 -
@BigBen:感谢您的回复。它没有改变任何东西。
-
@richardec:是的,没错