相关疑难解决方法(0)

Python Pandas:获取与列值匹配的所有行的索引

我有以下数据框:

Rec  Channel  Value1  Value2 
Pre             10      20
Pre             35      42
Event    A      23      39
FF              50      75
Post     A      79      11
Post     B      88      69
Run Code Online (Sandbox Code Playgroud)

我正在尝试确定此 Pandas Dataframe 的适当语法,了解如何为“通道”列等于 A 或 B 的所有实例建立索引。找到所有实例后,我想将它们打印出来。此外,我希望能够在脚本中调用每个索引以进行进一步的应用。

我希望显示为:

Rec  Channel  Value1  Value2
Event   A       23      39
Post    A       79      11
Post    B       88      69
Run Code Online (Sandbox Code Playgroud)

然后我想要一个“for 循环”,它会遍历并分别打印出每个索引实例,以便很容易识别并单独调用它们,以便在脚本中进一步使用。有人可以建议吗?

python indexing dataframe pandas

4
推荐指数
1
解决办法
7239
查看次数

有没有更快的方法使用python从CSV中分离重复和不同的数据?

我有一个包含数百万数据的数据帧.假设这是名为的数据帧mydataframe:

filename | #insert-1 | #insert-2 | #delete-1 | #delete-2
---------------------------------------------------------
A        |         4 |         4 |         3 |         3
B        |         3 |         5 |         2 |         2
C        |         5 |         5 |         6 |         7
D        |         2 |         2 |         3 |         3
E        |         4 |         5 |         5 |         3
---------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我需要根据插入或删除的不同数量来分离文件,然后将它们保存到新CSV文件中,命名为different.csv.并且还在CSV名为的单独文件中保存具有相同插入和删除数量的其余数据same.csv.在换句话说,如果该文件之间具有不同数目的#insert-1#insert-2,或#delete-1#delete-2然后将其保存在different.csv,否则,将其保存在same.csv. …

python csv duplicates dataframe pandas

4
推荐指数
1
解决办法
131
查看次数

如何合并数据框中具有最接近值的行

我有一个DataFrame这样的:

index B
0     1
1     2
2     5
3     6
4     7
5     10
Run Code Online (Sandbox Code Playgroud)

我需要合并差值小于或等于 2 的行,选择值较小的行并设置计数合并

结果应该是这样的:

index B count
0     1   2
1     5   3
2     10  1
Run Code Online (Sandbox Code Playgroud)

如何使用 pandas 解决这个问题?

python pandas

4
推荐指数
2
解决办法
89
查看次数

使用索引(numpy等效的python枚举)迭代numpy

我正在尝试创建一个函数来计算多维numpy数组中元素之间的晶格距离(水平和垂直步长的数量).为此,我需要在迭代数组时从每个元素的索引中检索实际数字.我想将这些值存储为可以通过距离公式运行的数字.

对于示例阵列A.

 A=np.array([[1,2,3],[4,5,6],[7,8,9]])
Run Code Online (Sandbox Code Playgroud)

我想创建一个迭代遍历每个元素的循环,对于第一个元素1,它将检索a = 0,b = 0,因为1是A [0,0],然后a = 0,b = 1表示元素2因为它位于A [0,1],依此类推......

我设想的输出是数组中每个元素的两个数字(对应于该元素的两个索引值).所以在上面的例子中,我将分配的两个值是a和b.我只需要在循环中检索这两个数字(而不是单独保存为另一个数据对象).

任何关于如何做到这一点的想法将不胜感激!

python numpy

3
推荐指数
2
解决办法
2662
查看次数

在数据帧行上迭代 for 循环

我是 Python 新手,正在学习使用数据框和列表推导式。我有以下数据框:

df1=pd.DataFrame({'names':[[['Hans Peter'],['Harry Potter']],[['bla bla'],['some string']]]})
Run Code Online (Sandbox Code Playgroud)

现在我想将每个子列表拆分成单词。对于我可以使用的单个列表列表

x=[['Hans Peter'],['Harry Potter'],['bla bla'],['some string here']]
res=[]
for list in x:
    res.append(str(list[0]).split())
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能在数据帧上迭代呢?我想我必须建立一个列表理解,然后使用该apply()方法来克服.append? 但我不知道该怎么做。我会为这样的单个列表构建列表理解:

res = [str(list[0]).split for list in x]
Run Code Online (Sandbox Code Playgroud)

但我得到一个包含这些函数的列表:

[<function str.split(sep=None, maxsplit=-1)>,...]
Run Code Online (Sandbox Code Playgroud)

DataFrame 的预期输出是

 0 [['Hans','Peter],['Harry','Potter']]
 1 [['bla','bla'],['some','string']]
Run Code Online (Sandbox Code Playgroud)

python list pandas

3
推荐指数
1
解决办法
423
查看次数

检测 Pandas DataFrame 列中的连续重复而不进行迭代

因此,根据这个答案,最好不要迭代 Pandas DataFrame 中的行。但是,我不知道如何在不使用 for 循环的情况下解决我的问题。

我需要检测特定列中的任何连续重复(三次或多次)。因此,例如,如果某个特定 ID 的值 0 出现在连续三行中,我想知道该 ID。

ID     Value
1       0
1       0.5
1       0   <--- I need this ID, because there are three consecutive 0s.
1       0
1       0
1       0.2
2       0.1
2       0   <--- Not this one! It only appears twice in a row for this ID.
2       0
3       0
3       0
Run Code Online (Sandbox Code Playgroud)

也许值得一提的是,这是一个时间序列,因此顺序至关重要。

python pandas

3
推荐指数
1
解决办法
281
查看次数

使用for循环转换多列的数据类型

我有一个21840x39数据框。我的一些列是有数值的,我想确保它们都在相同的位置data type(我希望是一个float)。

而不是命名所有列并转换它们:

df[['A', 'B', 'C', '...]] = df[['A', 'B', 'C', '...]].astype(float)

Run Code Online (Sandbox Code Playgroud)

我可以做一个for loop允许我说“从第 18 列转换为浮点到第 35 列”之类的话吗

我知道如何做一栏:df['A'] = df['A'].astype(float)

但我怎样才能做多列呢?我尝试在循环内进行列表切片,但无法正确执行。

python numpy pandas

3
推荐指数
1
解决办法
2943
查看次数

熊猫数据帧行到列表字典,使用每行的第一个值作为键

import pandas as pd
Run Code Online (Sandbox Code Playgroud)

设置

我有一个数据框:

df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                   'B': ['B0', 'B1', 'B2', 'B3'],
                   'C': ['C0', 'C1', 'C2', 'C3'],
                   'D': ['D0', 'D1', 'D2', 'D3']},
                   index=[0, 1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

IE:

+----+-----+-----+-----+-----+
|    | A   | B   | C   | D   |
|----+-----+-----+-----+-----|
|  0 | A0  | B0  | C0  | D0  |
|  1 | A1  | B1  | C1  | D1  |
|  2 | A2  | B2  | C2  | D2  |
|  3 …
Run Code Online (Sandbox Code Playgroud)

python dictionary dataframe python-3.x pandas

3
推荐指数
2
解决办法
143
查看次数

Python Pandas - 根据单元格值查找列值

我正在尝试使用一个单元格的值来查找另一列中一个单元格的值。第一个单元格值指示要查找的列。

import pandas as pd

df = pd.DataFrame({'A': ['John', 'Andrew', 'Bob', 'Fred'], 'B': [
                  'Fred', 'Simon', 'Andrew', 'Andrew'], 'source': ['A', 'B', 'A', 'B']}, )

print(df)


        A       B source
0    John    Fred      A
1  Andrew   Simon      B
2     Bob  Andrew      A
3    Fred  Andrew      B
Run Code Online (Sandbox Code Playgroud)

我在“输出”列中所需的输出值是对“源”的查找

        A       B source  output
0    John    Fred      A    John
1  Andrew   Simon      B   Simon
2     Bob  Andrew      A     Bob
3    Fred  Andrew      B  Andrew
Run Code Online (Sandbox Code Playgroud)

失败的尝试

df['output'] = df[df['source']]
Run Code Online (Sandbox Code Playgroud)

这会导致ValueError: Wrong number of items connected …

dataframe python-3.x pandas

3
推荐指数
1
解决办法
260
查看次数

使用exec使用动态逻辑修改熊猫数据框

假设我有一个脚本,该脚本从数据库中将数据读取到数据帧中,在该数据帧上运行一些逻辑,然后将结果数据帧导出到另一个数据库表中,如下所示。问题是exec函数之后,transform.py中的数据帧不会被覆盖。

注意:这是一个简单的示例,用于说明问题,而不是我尝试使用此方法解决的实际问题。

期望:

执行前

+---------+---------------+--------------+----------+
| metric  | modified_date | current_date | datediff |
+---------+---------------+--------------+----------+
| metric1 | 2019-03-31    | 2019-05-03   |       33 |
| metric2 | 2019-03-31    | 2019-05-03   |       33 |
| metric3 | 2019-03-31    | 2019-05-03   |       33 |
| metric4 | 2019-03-20    | 2019-05-03   |       44 |
+---------+---------------+--------------+----------+
Run Code Online (Sandbox Code Playgroud)

执行后

+---------+---------------+--------------+----------+
| metric  | modified_date | current_date | datediff |
+---------+---------------+--------------+----------+
| metric4 | 2019-03-20    | 2019-05-03   |       44 |
+---------+---------------+--------------+----------+
Run Code Online (Sandbox Code Playgroud)

实际:

执行前

+---------+---------------+--------------+----------+ …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
211
查看次数

标签 统计

pandas ×9

python ×9

dataframe ×4

numpy ×2

python-3.x ×2

csv ×1

dictionary ×1

duplicates ×1

indexing ×1

list ×1