我有一个 pandas dataFrame,它由许多列组成,但只有一行。当我遍历每一列以获取每一行的包含时,我得到 2 个单独的数字;即一个用于索引和数字本身。 假设 df 是我的数据帧,我执行以下操作
for k,v in df.iteritems():
if df[k]>df.mean(axis=1):
print(" do something")
我收到以下错误:ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 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
最佳答案
你得到一个 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]
关于python - 如何在没有索引的情况下获取 pandas DataFrame 单行的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33942948/