Python 如何忽略数据帧中的空列?(熊猫)
我想忽略数据帧中的空列 例如: sample.csvPython 如何忽略数据帧中的空列?(熊猫),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('
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