【问题标题】:Text data stored differently以不同方式存储的文本数据
【发布时间】:2019-02-22 16:05:37
【问题描述】:

我的问题是我有 2 个值应该是相同的,但是它们有这种奇怪的差异,我不知道它来自哪里。

上下文是我使用 pd.read_csv 导入了 3 个文件。我使用 groupby 对值进行分组,使用一些日期字段,并使用 nunique 聚合有问题的变量,只是为了记录计数。

然后,使用 Tableau 它实际上计算了不同数量的唯一记录。我发现一对记录 pandas 说是不同的,而 Tableau 认为是平等的。

看看:

df
      A
0     100000306
1     100000306

x1 = df.iloc[0,0]
str(x1.values)
"['100000306']"

x2 = df.iloc[1,0]
str(x2.values)
'[100000306]'

为什么会发生这种情况,我该怎么做才能让 pandas 知道它们是相同的值?

【问题讨论】:

    标签: python pandas tableau-api


    【解决方案1】:

    你在一列中有不同的类型

    df.applymap(type)
                   A
    0  <class 'str'>
    1  <class 'int'>
    

    注意当你打印 df.A 时它会显示对象

    df.A
    0    100000306
    1    100000306
    Name: A, dtype: object
    

    【讨论】:

      【解决方案2】:

      欢迎使用 Stackoverflow!

      我不确定您对数据执行了哪些其他处理步骤,但似乎 [0,0] 中存储的值是字符串 '100000306',而不是整数 100000306。您可以做的是使用pandas.to_numeric() 以便在可能的情况下将列中的值转换为浮点值

      df['A'] = pd.to_numeric(df['A'])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-29
        • 2012-01-09
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        • 2011-04-02
        • 2013-04-24
        • 2011-08-12
        相关资源
        最近更新 更多