【问题标题】:How to get the contents of a pandas DateFrame single row without its index如何在没有索引的情况下获取 pandas DataFrame 单行的内容
【发布时间】:2016-02-29 19:17:23
【问题描述】:

我有一个 pandas 数据框,它由许多列组成,但只有一行。当我遍历每一列以获取每一行的包含时,我得到 2 个单独的数字;即一个用于索引和数字本身。 假设 df 是我的数据帧,我执行以下操作

for k,v in df.iteritems():

      if df[k]>df.mean(axis=1):
         print(" do something")

我收到以下错误:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

当我打印 df[k] 时,我有两个值 0 num

如何删除第一个值?

编辑:

这是我的数据框的结构

     column1    column2    column3
  0     2           3          -4

我现在有

for k,v in df.iteritems():

      if df[k][0]>3* abs(df.mean(axis=1)):
         print(" do something")

现在的错误是:TypeError: len() of unsized object

【问题讨论】:

    标签: python python-2.7 pandas dataframe


    【解决方案1】:

    你得到一个 Series 返回,只得到标量值然后就这样做:

    df[k].values[0]
    

    例子:

    In [190]:
    df = pd.DataFrame(columns=list('abc'), data = np.random.randn(1,3))
    df
    
    Out[190]:
              a         b         c
    0  0.994306 -0.340043 -0.551422
    
    In [191]:    
    for col in df:
        print(df[col].values[0])
    
    0.994306161647
    -0.340042912281
    -0.551421752498
    

    如果你讨厌打字,这也可以:

    df[k][0]
    

    【讨论】:

    • 非常感谢。有用。但是为什么我现在遇到长度问题:TypeError: len() of unsized object?
    • 请为您的错误发布原始输入数据和代码,因为我的代码有效
    猜你喜欢
    • 1970-01-01
    • 2021-01-11
    • 2011-02-26
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多