【问题标题】:Function to return stripped dataframe返回剥离数据帧的函数
【发布时间】:2018-11-20 07:51:18
【问题描述】:

我有一个来自 CSV 文件的数据框:

import pandas as pd

filename = 'mike.csv'
main_df = pd.read_csv(filename)

我需要一个函数,该函数将从空格中删除所有字符串列(也有数字列)的内容,然后返回此类删除的数据帧。在下面的函数中,剥离似乎工作正常,但我不知道如何返回剥离的数据帧:

def strip_whitespace(dataframe):
    dataframe_strings = dataframe.select_dtypes(['object'])
    dataframe[dataframe_strings.columns] = dataframe_strings.apply(lambda x: x.str.strip())
    return # how to return a stripped dataframe here?

完整代码:

import pandas as pd

filename = 'mike.csv'
main_df = pd.read_csv(filename)

def strip_whitespace(dataframe):
    dataframe_strings = dataframe.select_dtypes(['object'])
    dataframe[dataframe_strings.columns] = dataframe_strings.apply(lambda x: x.str.strip())
    return stripped_dataframe # ?

stripped_main_df = strip_whitespace(main_df) # should be stripped df

【问题讨论】:

  • 你觉得return dataframe 吗?
  • 你可以return dataframe
  • 我投票决定将此问题作为离题结束,因为该问题是由印刷错误(错误的变量名)加上错误的缩进造成的。
  • 另外,这里的问题与 pandas 没有任何关系,更像是您对函数和变量的理解的问题。我建议您事先阅读一些文档。
  • 那么您应该提供minimal reproducible example,以便我们重现您的问题并提供解决方案。发布不可运行的代码并说“它不起作用”对您、我或网站都没有帮助。

标签: python pandas function strip removing-whitespace


【解决方案1】:

我认为read_csv 中需要参数skipinitialspace=True

main_df = pd.read_csv(filename, skipinitialspace=True)

然后不需要剥离列。


但如果需要使用你的功能:

return dataframe

【讨论】:

  • skipinitialspace=True 是否也会去除尾随空格?
  • @barciewicz - 是的,但这取决于数据,因为它会跳过分隔符后的空格。
  • @barciewicz - 所以基本上我建议使用这个参数,如果仍然有问题使用你的函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-04
  • 2013-04-08
  • 2019-03-05
  • 2023-04-05
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多