首页 > 解决方案 > 如何仅删除数据框中的尾随空列?

问题描述

我有一个这样的数据框:

data = [['a','b','','d','e','f'],
        ['g','','','h'],
        ['i','j','','k'],
        ['l','','m']]

df = pd.DataFrame(data)

我试过了:

df = df.fillna('')
sep = '*'
df.applymap(str).apply(
    axis=1, func=lambda s: sep.join(el for el in s if el) 
).to_csv(
    'output.csv', index=False, header=False
)

在文件 output.csv 中,删除了空列,但我只想删除数据框中的尾随列。

以上代码生成的Output.csv:

a*b*d*e*f
g*h
i*j*k
l*m

预期输出.csv:

a*b**d*e*f
g**h
i*j**k
l**m

标签: pythonpython-3.xpandasdataframenumpy

解决方案


空字符串在 Python 中是虚假的,这意味着您的列表理解将过滤掉空字符串的数据框元素。要获得所需的输出,您可以简单地删除列表推导并直接加入原始列表,因为您似乎想要包含所有元素:

df = df.fillna('')
sep = '*'
df.applymap(str).apply(
    axis=1, func=lambda s: sep.join(s).strip('*')
).to_csv(
    'output.csv', index=False, header=False
)

推荐阅读