相关疑难解决方法(0)

如何迭代Pandas中的DataFrame中的行?

我有一只DataFrame熊猫:

import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df
Run Code Online (Sandbox Code Playgroud)

输出:

   c1   c2
0  10  100
1  11  110
2  12  120
Run Code Online (Sandbox Code Playgroud)

现在我想迭代这个帧的行.对于每一行,我希望能够通过列的名称访问其元素(单元格中的值).例如:

for row in df.rows:
   print row['c1'], row['c2']
Run Code Online (Sandbox Code Playgroud)

是否有可能在熊猫中做到这一点?

我发现了类似的问题.但它没有给我我需要的答案.例如,建议使用:

for date, row in df.T.iteritems():
Run Code Online (Sandbox Code Playgroud)

要么

for row in df.iterrows():
Run Code Online (Sandbox Code Playgroud)

但我不明白row对象是什么以及如何使用它.

python rows dataframe pandas

1551
推荐指数
28
解决办法
199万
查看次数

检测并排除Pandas数据帧中的异常值

我有一个包含很少列的pandas数据帧.

现在我知道某些行是基于某个列值的异常值.

例如列 - 'Vol'的所有值都大约为12xx,一个值为4000(异常值).

现在我想排除那些有'Vol'列的行.因此,基本上我需要在数据框上放置一个过滤器,以便我们选择所有行,其中某列的值在与平均值相差3个标准差的范围内.

实现这一目标的优雅方式是什么?

python filtering outliers dataframe pandas

174
推荐指数
12
解决办法
19万
查看次数

使用pd.eval()在pandas中进行动态表达式评估

目标和动机

pd.eval并且eval是pandas API套件中功能强大但被低估的功能,它们的使用远未完全记录或理解.小心适量,eval并且engine可以极大地简化代码,提高性能,并成为创建动态工作流的强大工具.

这个规范QnA的目的是让用户更好地理解这些功能,讨论一些鲜为人知的功能,如何使用它们,以及如何最好地使用它们,以及清晰易懂的示例.这篇文章将讨论的两个主要议题是

  1. 了解parser,df2x在争论pd.eval,以及它们如何被用来计算表达式
  2. 了解之间的差eval,eval并且engine,当每个功能是合适的用于动态执行.

这篇文章不能替代文档(答案中的链接),所以请完成它!


我将以这样的方式构建一个问题,以便开启对所支持的各种功能的讨论parser.

给出两个DataFrame

np.random.seed(0)
df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))

df1
   A  B  C  D
0  5  0  3  3
1  7  9  3  5
2  2  4  7  6
3  8  8  1  6
4  7  7  8  1

df2
   A  B  C …
Run Code Online (Sandbox Code Playgroud)

python eval dataframe pandas

45
推荐指数
2
解决办法
7156
查看次数

Tilde登录python数据帧

我是python的新手,遇到了代码片段.

df = df[~df['InvoiceNo'].str.contains('C')]
Run Code Online (Sandbox Code Playgroud)

如果我能知道在这种情况下波形符号的用法是什么,那将是非常有必要的吗?

python pandas

22
推荐指数
1
解决办法
9963
查看次数

如何在pandas dataframe列中选择一系列值?

import pandas as pd
import numpy as np
data = 'filename.csv'
df = pd.DataFrame(data)
df 

        one       two     three  four   five
a  0.469112 -0.282863 -1.509059  bar   True
b  0.932424  1.224234  7.823421  bar  False
c -1.135632  1.212112 -0.173215  bar  False
d  0.232424  2.342112  0.982342  unbar True
e  0.119209 -1.044236 -0.861849  bar   True
f -2.104569 -0.494929  1.071804  bar  False
Run Code Online (Sandbox Code Playgroud)

我想为某列选择一个范围,让我们说列two.我想选择介于-0.5和+0.5之间的所有值.怎么做到这一点?

我期待用

-0.5 < df["two"] < 0.5
Run Code Online (Sandbox Code Playgroud)

但这(自然)给出了一个ValueError:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() …
Run Code Online (Sandbox Code Playgroud)

python range dataframe python-3.x pandas

18
推荐指数
2
解决办法
5万
查看次数

根据条件创建布尔列

我有一个包含 11 列的数据框,我想根据其中两列中的值创建一个新的 0,1 列。

我已经尝试使用 np.where 创建其他列,但它不适用于这一列。

train["location"] = np.where(3750901.5068 <= train["x"] <= 3770901.5068 
and -19268905.6133 <= train['y'] <= -19208905.6133, 1, 0)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

python numpy python-3.x pandas

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

pandas ×6

python ×6

dataframe ×4

python-3.x ×2

eval ×1

filtering ×1

numpy ×1

outliers ×1

range ×1

rows ×1