小编Liz*_*iza的帖子

在特定索引处的pandas数据框中插入新行

我有一个以下数据框df,其中包含两列"identifier","values"和"subid":

     identifier   values    subid
0      1          101       1
1      1          102       1
2      1          103       2 #index in list x        
3      1          104       2
4      1          105       2
5      2          106       3   
6      2          107       3
7      2          108       3
8      2          109       4 #index in list x
9      2          110       4
10     3          111       5
11     3          112       5 
12     3          113       6 #index in list x
Run Code Online (Sandbox Code Playgroud)

我有一个索引列表,比方说

x = [2, 8, 12] 
Run Code Online (Sandbox Code Playgroud)

我想在列表x中提到的索引之前插入行.例如,对于在索引2之前插入的行,将具有以下值,它将具有索引2处的行相同的标识符 …

python dataframe pandas

9
推荐指数
1
解决办法
6762
查看次数

将数组列表转换为列表列表?

在一些复杂的操作之后,获得结果列表,例如list1,它是不同数组的列表.

以下是list1

In [] : list1
Out [] : 
       [array([ 10.1]),
        array([ 13.26]),
        array([ 11.0 ,  12.5])]
Run Code Online (Sandbox Code Playgroud)

想要将此列表转换为简单的列表列表而不是数组

预期清单2

      [ [ 10.1],
        [ 13.26],
        [ 11.0 ,  12.5] ]
Run Code Online (Sandbox Code Playgroud)

如果有任何不清楚的地方,请告诉我.

python arrays numpy list

6
推荐指数
2
解决办法
8374
查看次数

Pandas groupby在同一个情节上得出结果

我正在处理以下数据框(仅用于说明,实际df非常大):

   seq          x1         y1
0  2           0.7725      0.2105
1  2           0.8098      0.3456
2  2           0.7457      0.5436
3  2           0.4168      0.7610
4  2           0.3181      0.8790
5  3           0.2092      0.5498
6  3           0.0591      0.6357
7  5           0.9937      0.5364
8  5           0.3756      0.7635
9  5           0.1661      0.8364
Run Code Online (Sandbox Code Playgroud)

尝试为上述坐标绘制多个折线图(x为"x1对y为"y1").

具有相同"seq"的行是一条路径,并且必须被绘制为一条单独的线,就像对应于seq = 2的所有x,y坐标属于一条线,依此类推.

我能够绘制它们,但是在单独的图形上,我想要在同一图表上的所有行,使用子图,但不能正确.

import matplotlib as mpl
import matplotlib.pyplot as plt

%matplotlib notebook

df.groupby("seq").plot(kind = "line", x = "x1", y = "y1")
Run Code Online (Sandbox Code Playgroud)

这将创建100个图形(等于唯一seq的数量).建议我获取同一图表上所有行的方法.

**更新*

为解决上述问题,我实现了以下代码:

     fig, ax = plt.subplots(figsize=(12,8))
     df.groupby('seq').plot(kind='line', x = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

5
推荐指数
3
解决办法
3722
查看次数

根据索引列表更改 pandas 列的值

我有一个 df ,其中有两列uidp,我想向现有 df 添加一个新列,或者使用附加列创建一个全新的 df ,该附加列的值基于列“uid”和索引列表的X:

x = [2, 9, 12]

x 包含我应该生成新 id 的索引,新 id 是以前的 id 的增量。因此,将有两种情况,每当遇到列表 x 中的索引时,都会生成新的 id,每当uid列中的 id 发生更改时,都会再次生成新的 id,如下所示:

     uid       expected_newid     p     

0      1       1                 10     
1      1       1                 23    
2      1       2                 20  #new id generated at index 2    
3      1       2                 40
4      2       3                 21  #newid generated as "uid" changes
5      2       3                 89
6      2       3                 45
7      3       4                 50 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

5
推荐指数
1
解决办法
3769
查看次数

如何使用python列表列表?

我有以下列表的示例列表:

In [] : list1
Out [] : 
[[1.0],
 [2.1],
 [3.3, 5.5, 0.69],
 [0.69, 0.9]]
Run Code Online (Sandbox Code Playgroud)

我想只提取元素数量相等且大于2的子列表,并希望将它们存储在数据框中.

所以,我希望df如下所示:

In [] : df
Out [] : 
        seq_no       items
            1        3.3 , 5.5, 0.69
            2        0.69, 0.9
Run Code Online (Sandbox Code Playgroud)

尝试:

item for item in list1 where(len(item) >2)
Run Code Online (Sandbox Code Playgroud)

显示错误.

如果有任何不清楚的地方,请告诉我.

python list dataframe pandas

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

如何在pandas数据框中拆分多行单元格的值?

我有一个以下数据框,它是使用以下代码获得的:

     df1=df.groupby('id')['x,y'].apply(lambda x: rdp(x.tolist(), 5.0)).reset_index()
Run Code Online (Sandbox Code Playgroud)

请参考这里

得到的结果数据框:

      id          x,y
  0   1    [(0, 0), (1, 2)]
  1   2    [(1, 3), (1, 2)]
  2   3    [(2, 5), (4, 6)]  
Run Code Online (Sandbox Code Playgroud)

有可能得到这样的东西:

         id      x,y
     0   1      (0, 0)
     1   1      (1, 2)
     2   2      (1, 3)
     3   2      (1, 2)
     4   3      (2, 5)
     5   3      (4, 6)
Run Code Online (Sandbox Code Playgroud)

这里,作为先前df的结果获得的坐标列表被分成相对于它们各自的id的新行.

python dataframe pandas

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

如何找到一条线与网格的交点?

我有轨迹数据,其中每个轨迹由一系列坐标(x,y点)组成,每个轨迹由唯一ID标识.

这些轨迹位于  x-y  平面,我想将整个平面划分为相等大小的网格(方形网格).该网格显然是不可见的,但用于将轨迹划分为子段.每当轨迹与网格线相交时,它就会在那里被分段并成为带有new_id的新子轨迹.

我已经包含了一个简单的手工图表,以明确我的期望.

在此输入图像描述

可以看出轨迹如何在网格线的交叉点处被划分,并且这些段中的每一个都具有新的唯一id.

我正在研究Python,并寻找一些python实现链接,建议,算法,甚至是伪代码.

如果有任何不清楚的地方,请告诉我.

UPDATE

为了将平面划分为网格,单元索引的完成如下:

#finding cell id for each coordinate
#cellid = (coord / cellSize).astype(int)
cellid = (coord / 0.5).astype(int)
cellid
Out[] : array([[1, 1],
              [3, 1],
              [4, 2],
              [4, 4],
              [5, 5],
              [6, 5]])
#Getting x-cell id and y-cell id separately 
x_cellid = cellid[:,0]
y_cellid = cellid[:,1]

#finding total number of cells
xmax = df.xcoord.max()
xmin = df.xcoord.min()
ymax = df.ycoord.max()
ymin = df.ycoord.min()
no_of_xcells = math.floor((xmax-xmin)/ 0.5)
no_of_ycells …
Run Code Online (Sandbox Code Playgroud)

python algorithm grid numpy intersection

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

标签 统计

python ×7

pandas ×5

dataframe ×4

list ×2

numpy ×2

algorithm ×1

arrays ×1

grid ×1

intersection ×1

matplotlib ×1