【问题标题】:python pandas dataframe unique values appending 'L' to data valuespython pandas数据框唯一值将'L'附加到数据值
【发布时间】:2015-06-24 09:38:16
【问题描述】:

我正在将 python 文件作为 CGI 运行,它将 CSV 读取到 pandas 数据帧中。问题是当我尝试获取只有整数值的列的唯一值时,我会在数据值上额外附加一个“L”。

这是代码。

def Main():
  formData = cgi.FieldStorage()
  fileName = str(formData.getvalue('file'))
  field = str(formData.getvalue('field'))
  df = fileRead.readFile(fileName)
  unique = pd.unique(df[field])
  print unique.tolist()

这是输出:

[1L、2L、3L、4L、5L、6L、7L、8L、9L、10L、11L、12L、13L、14L、15L、 16L、17L、18L、19L、20L、21L、22L、23L、24L、25L、26L、27L、28L]

这适用于具有浮点值或文本值的列。

[25.9, 29.5, 27.9, 29.9, 30.9, 28.9, 84.9, 82.9, 35.9, 31.5, 31.0, 30.0、36.9、41.9、40.5、43.9、37.5、37.9、44.5、38.9、45.8、41.0]

顺便说一句,fileRead 只是另一个将 CSV 读取到数据帧的文件。

df = pd.read_csv(path)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这里的“L”指的是“Long”。除了占用更多内存之外,它不应该影响您的代码。

    示例:1L + 2 = 3L

    另外,而不是做:

    unique = pd.unique(df[field])
    

    试试这个

    unique = df.drop_duplicates('field')
    

    【讨论】:

    • 这对长值非常有效,但现在浮点值已经改变,例如 26.8 变成了 26.800000000000001
    猜你喜欢
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2021-10-08
    • 1970-01-01
    • 2013-10-05
    • 2017-06-13
    相关资源
    最近更新 更多