pandas dataframe -在将df作为txt文件加载到_csv之前删除所有空格

oalqel3c  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(119)

我有一个我从mysql查询创建的df。当我将查询结果转换为df时,我会看到每一列之间都有空格,但对于最终的txt文件,我需要确保没有行有空格:
这是我尝试过的,如果我做sep = ' ',那么它会创建空间:

csv_data = df.to_csv(index=False)

s3.load_string(csv_data,
               key=test_file.txt,
               bucket_name=my_bucet,
               replace=True)

我注意到了这个问题,但看起来我必须为每列执行df["Make"] = df["Make"].map(str.strip)以删除空白
How can I remove extra whitespace from strings when parsing a csv file in Pandas?
示例:这是当前空格的样子,但我想确保所有空格都消失了:

b4wnujal

b4wnujal1#

快速解答

我不确定字符串中的空格是从哪里来的,但没关系,这里有一个简单的两行解决方案来解决您的问题。

str_cols = df.columns[df.dtypes == 'object']
df[str_cols] = df[str_cols].apply(lambda x: x.str.strip())

再次重申@mozway的观点:下次最好包括文本而不是图像。

Context

我强制数据框包含空格

df['Make'] = df['Make'] + " "
df['Model'] = df['Model'] + " "
df.to_csv("test_spaces.csv", index=False)

它生成了一个文件,看起来像:

Year,Make,Model,Description
1997, Ford , E350 ,
1997, Ford  , E350 ,
1997, Ford , E350 ,"Super, luxurious truck"
1997, Ford , E350 ,"Super ""luxurious"" truck"

如果我在调用to_csv之前应用上面的解决方案,那么我会得到以下输出:

Year,Make,Model,Description
1997,Ford,E350,
1997,Ford,E350,
1997,Ford,E350,"Super, luxurious truck"
1997,Ford,E350,"Super ""luxurious"" truck"
1997,Ford,E350,Super luxurious truck

相关问题