Python 如何忽略数据帧中的空列?(熊猫)

Python 如何忽略数据帧中的空列?(熊猫),python,python-3.x,pandas,dataframe,numpy,Python,Python 3.x,Pandas,Dataframe,Numpy,我想忽略数据帧中的空列 例如: sample.csv Id Name Address Contact Item Rate Qty Price 1 Mark California 98429102 Shirt 57 2 8 2 Andre Michigan 92010211 我试过: import pandas as pd df = pd.read_csv('sample.csv') df = df.fillna('') df.to_csv('

我想忽略数据帧中的空列

例如:

sample.csv

Id  Name  Address    Contact   Item   Rate Qty  Price
1   Mark  California 98429102  Shirt  57    2    8
2   Andre Michigan   92010211
我试过:

import pandas as pd
df = pd.read_csv('sample.csv')
df = df.fillna('')

df.to_csv('sample.txt',sep='*',index=False, header=False)
sample.txt看起来像

1*Mark*California*98429102*Shirt*57*2*8
2*Andre*Michigan*92010211****
我想删除这里的空列。sample.txt应如下所示:

1*Mark*California*98429102*Shirt*57*2*8
2*Andre*Michigan*92010211
那怎么办

sep = '*'
df.applymap(str).apply(
  # axis=1, func=lambda s: sep.join(el for el in s if el)  # Removes all empty fields
    axis=1, func=lambda s: sep.join(s).strip('*')  # Removes trailing fields
).to_csv(
    'sample.txt', index=False, header=False
)
那怎么办

sep = '*'
df.applymap(str).apply(
  # axis=1, func=lambda s: sep.join(el for el in s if el)  # Removes all empty fields
    axis=1, func=lambda s: sep.join(s).strip('*')  # Removes trailing fields
).to_csv(
    'sample.txt', index=False, header=False
)

只需使用内存缓冲区和
strip()

输出
只需使用内存缓冲区和
strip()

输出
为什么要这样做?输出文件的格式是这样的。这看起来像是一个错误指定的格式。我认为熊猫在这里帮不了你。您可能需要直接对文本文件进行一些后处理。最多可以将数据帧拆分为2(使用类似
df['item'].isna()的布尔掩码)然后写两个单独的CSV文件。我需要在一个txt文件中指定所有数据。为什么要这样做?输出文件的格式是这样的。看起来指定的格式不正确。我认为熊猫在这里帮不了你。您可能需要直接对文本文件进行一些后处理。最多可以将数据框拆分为2(使用类似
df['item'].isna()的布尔掩码)并写入2个单独的CSV文件。我需要在单个txt文件中指定所有数据。这将从所有字段中删除空元素。我只想删除尾随字段。请参阅更新。相当轻微。有问题吗?这将从所有字段中删除空元素。我只想删除尾随字段。请参阅更新。相当轻微。有问题吗?
1*Mark*California*98429102*Shirt*57.0*2.0*8.0
2*Andre*Michigan*92010211