相关疑难解决方法(0)

Pandas:嵌套数据框

您好,我想将数据帧存储在另一个数据帧单元格中。我有一个看起来像这样的数据在此处输入图片说明

我有包含日期​​、步数和卡路里的每日数据。此外,我有特定日期的每分钟 HR 数据。显然,将每分钟的数据放在二维列表中会很容易,但我担心以后会更难分析。
当我想在一个数据框中同时拥有两个数据时,最佳实践是什么?甚至可以嵌套数据帧吗?
有什么更好的想法吗?谢谢!

python dataframe pandas

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

是否有相当于 tidyr nest 功能的熊猫?

tidyr::unnestR 语言中的方法与 Pandas 中的等效方法相同explode如此非常详细的答案中所述。我想知道是否有等效于 ?tidyr::nest` 的方法。

示例 R 代码:

library(tidyr)
iris_nested <- as_tibble(iris) %>% nest(data=-Species)
Run Code Online (Sandbox Code Playgroud)

数据列是一个列表列,其中包含数据框(这对于建模非常有用,例如在运行多个模型时)。

iris_nested
# A tibble: 3 x 2
  Species              data
  <fct>      <list<df[,4]>>
1 setosa           [50 × 4]
2 versicolor       [50 × 4]
3 virginica        [50 × 4]
Run Code Online (Sandbox Code Playgroud)

要访问数据列中的一个元素:

iris_nested[1,'data'][[1]]
[...]
# A tibble: 50 x 4
   Sepal.Length Sepal.Width Petal.Length Petal.Width
          <dbl>       <dbl>        <dbl>       <dbl>
 1          5.1         3.5          1.4         0.2
 2          4.9         3            1.4         0.2
 3          4.7         3.2          1.3         0.2
 4 …
Run Code Online (Sandbox Code Playgroud)

python r pandas tidyverse

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

pyspark在大熊猫的平面地图

pandas中的操作是否与pyspark中的flatMap相同?

flatMap示例:

>>> rdd = sc.parallelize([2, 3, 4])
>>> sorted(rdd.flatMap(lambda x: range(1, x)).collect())
[1, 1, 1, 2, 2, 3]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我可以想到apply其次itertools.chain,但我想知道是否有一步到位的解决方案.

pandas pyspark

8
推荐指数
2
解决办法
5193
查看次数

Pandas:将列拆分成多行

我有一个关于将数据帧列中的列表拆分为多行的问题.

假设我有这个数据帧:

  Job position   Job type  id
0          [6]        [1]   3
1       [2, 6]  [3, 6, 5]   4
2          [1]        [9]  43
Run Code Online (Sandbox Code Playgroud)

我想要每一个数字组合,所以最终的结果是:

   id    Job position  Job type
0   3         6.0       1.0
1   4         2.0       3.0
2   4         2.0       6.0
3   4         2.0       5.0
4   4         6.0       3.0
5   4         6.0       6.0
6   4         6.0       5.0
7  43         1.0       9.0
Run Code Online (Sandbox Code Playgroud)

因为现在我得到这个结果:

   id    Job position  Job type
0   3         6.0       1.0
1   4         2.0       3.0
2   4         6.0       6.0
3   4 …
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
2
解决办法
6257
查看次数

Convert elements of list in pandas series using a dict

I have the following Pandas dataframe:

1    ["Apple", "Banana"]
2    ["Kiwi"]
3    None
4    ["Apple"]
5    ["Banana", "Kiwi"]
Run Code Online (Sandbox Code Playgroud)

and the following dict:

{1: ["Apple", "Banana"],
2: ["Kiwi"]}
Run Code Online (Sandbox Code Playgroud)

I would now like to map all the entries in the lists in my dataframe using the dictionary. The result should be the following:

1    [1]
2    [2]
3    None
4    [1]
5    [1, 2]
Run Code Online (Sandbox Code Playgroud)

How can this be done most efficiently?

python pandas

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

在pandas DataFrame中取消(爆炸)多个列表列的有效方法

我正在将多个JSON对象读入一个DataFrame.问题是某些列是列表.此外,数据非常大,因此我不能使用互联网上的可用解决方案.它们非常慢并且内存效率低

以下是我的数据的样子:

df = pd.DataFrame({'A': ['x1','x2','x3', 'x4'], 'B':[['v1','v2'],['v3','v4'],['v5','v6'],['v7','v8']], 'C':[['c1','c2'],['c3','c4'],['c5','c6'],['c7','c8']],'D':[['d1','d2'],['d3','d4'],['d5','d6'],['d7','d8']], 'E':[['e1','e2'],['e3','e4'],['e5','e6'],['e7','e8']]})
    A       B          C           D           E
0   x1  [v1, v2]    [c1, c2]    [d1, d2]    [e1, e2]
1   x2  [v3, v4]    [c3, c4]    [d3, d4]    [e3, e4]
2   x3  [v5, v6]    [c5, c6]    [d5, d6]    [e5, e6]
3   x4  [v7, v8]    [c7, c8]    [d7, d8]    [e7, e8]
Run Code Online (Sandbox Code Playgroud)

这是我的数据形状:(441079,12)

我想要的输出是:

    A       B          C           D           E
0   x1      v1         c1         d1          e1
0   x1      v2         c2         d2          e2
1   x2      v3         c3         d3          e3 …
Run Code Online (Sandbox Code Playgroud)

python json dataframe pandas

6
推荐指数
5
解决办法
3376
查看次数

在pandas列中提取列表的元素

我有一个DataFrame,其中包含每列的列表,如下例所示,只有两列.

    Gamma   Beta
0   [1.4652917656926299, 0.9326935235505321, float] [91, 48.611034768515864, int]
1   [2.6008354611105995, 0.7608529935313189, float] [59, 42.38646954167245, int]
2   [2.6386970166722348, 0.9785848171888037, float] [89, 37.9011122659478, int]
3   [3.49336632573625, 1.0411524946972244, float]   [115, 36.211134224288344, int]
4   [2.193991200007534, 0.7955134305428825, float]  [128, 50.03563864975485, int]
5   [3.4574527664490997, 0.9399880977511021, float] [120, 41.841146628802875, int]
6   [3.1190582380554863, 1.0839109431114795, float] [148, 55.990072419824514, int]
7   [2.7757359940789916, 0.8889801332053203, float] [142, 51.08885697101243, int]
8   [3.23820908493237, 1.0587479742892683, float]   [183, 43.831293356668425, int]
9   [2.2509032790941985, 0.8896196407231622, float] [66, 35.9377662201882, int]
Run Code Online (Sandbox Code Playgroud)

我想为每一列提取每行列表的第一个位置,以获得如下的DataFrame.

    Gamma   Beta
0   1.4652917656926299  91
1 …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

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

将两个 pandas DataFrame 合并到包含列表的单元格上

我有两个 DataFrame,其中一个包含一列,其单元格内包含列表。这是一个例子:

DF 1 :
   | A      B
---+----------------------------
0  | 'A'    ['A', 'B']
1  | 'B'    ['B', 'D']
2  | 'C'    ['D', 'E', 'F']

DF 2 :
   | C      D
---+----------------------------
0  | 'A'    'X'
1  | 'B'    'Y'
2  | 'C'    'Z'
Run Code Online (Sandbox Code Playgroud)

这是设置 DataFrame 的代码:

df1 = pd.DataFrame({'A': ["A", "B", "C"], "B": [["A", "B"], ["B", "D"], ["D", "E", "F"]]})
df2 = pd.DataFrame({'C': ["A", "B", "C"], "D": ["X", "Y", "Z"]})
Run Code Online (Sandbox Code Playgroud)

我想用条件在 DF1 和 DF2 之间进行内部联接DF2.C in DF1.B,这是我期望的结果: …

python pandas

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

如何转换存储为两列(开始、结束)的日期范围以创建新行索引并填充值

我想将存储为两列(开始、结束)+值的日期范围转换为仅包含日期和值的两个新列。

\n\n

我的数据:

\n\n
    id     end          start        value\n1   4421   2014-01-01   2014-01-03   10\n2   4421   2014-01-04   2014-01-04   500\n3   4421   2014-01-05   2014-01-07   20\n4   5560   2014-01-02   2014-01-03   100\n5   5560   2014-01-04   2014-01-04   600\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想要的是:

\n\n
    Date         id     value\n0   2014-01-01   4421   10\n1   2014-01-02   4421   10\n2   2014-01-03   4421   10\n3   2014-01-04   4421   500\n4   2014-01-05   4421   20\n5   2014-01-06   4421   20\n6   2014-01-07   4421   20\n7   2014-01-01   5560   NA\n8   2014-01-02   5560   100\n9   2014-01-03   5560   100\n10  2014-01-04   5560   600\n
Run Code Online (Sandbox Code Playgroud)\n\n

I\xe2\x80\x99m 使用 dplyr,所以我可以与 mutate 和管道等一起使用的东西会很有用。

\n\n

样本数据:

\n\n
id <- c(4421, 4421, …
Run Code Online (Sandbox Code Playgroud)

time r time-series dplyr

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

如何展平pandas数据框中的数组

假设我有一个 pandas 数据框,例如

df_p = pd.DataFrame(
   {'name_array':
    [[20130101, 320903902, 239032902],
     [20130101, 3253453, 239032902],
     [65756, 4342452, 32425432523]],
    'name': ['a', 'a', 'c']} )
Run Code Online (Sandbox Code Playgroud)

数据框图像

我想提取包含每行中的展平数组的系列,同时保留顺序

预期结果是pandas.core.series.Series

预期输出图像

这个问题不是重复的,因为我的预期输出是 pandas 系列,而不是数据框。

python series flatten pandas

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

标签 统计

pandas ×9

python ×8

dataframe ×2

r ×2

dplyr ×1

flatten ×1

json ×1

pyspark ×1

python-3.x ×1

series ×1

tidyverse ×1

time ×1

time-series ×1