相关疑难解决方法(0)

如何更改DataFrame列的顺序?

我有以下DataFrame(df):

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(10, 5))
Run Code Online (Sandbox Code Playgroud)

我通过赋值添加更多列:

df['mean'] = df.mean(1)
Run Code Online (Sandbox Code Playgroud)

如何将列移动mean到前面,即将其设置为第一列,使其他列的顺序保持不变?

python dataframe pandas

729
推荐指数
23
解决办法
76万
查看次数

pandas:当单元格内容是列表时,为列表中的每个元素创建一行

我有一个数据框,其中一些单元格包含多个值的列表.我不想在单元格中存储多个值,而是扩展数据框,以便列表中的每个项目都有自己的行(在所有其他列中具有相同的值).所以,如果我有:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

df
Out[10]: 
                 samples  subject  trial_num
0    [0.57, -0.83, 1.44]        1          1
1    [-0.01, 1.13, 0.36]        1          2
2   [1.18, -1.46, -0.94]        1          3
3  [-0.08, -4.22, -2.05]        2          1
4     [0.72, 0.79, 0.53]        2          2
5    [0.4, -0.32, -0.13]        2          3
Run Code Online (Sandbox Code Playgroud)

如何转换为长格式,例如:

   subject  trial_num  sample  sample_num …
Run Code Online (Sandbox Code Playgroud)

python list pandas

133
推荐指数
7
解决办法
6万
查看次数

pandas:如何将列中的文本拆分成多行?

我正在使用大型csv文件,最后一列的下一行有一个文本字符串,我希望通过特定的分隔符进行拆分.我想知道是否有一种简单的方法可以使用pandas或python来做到这一点?

CustNum  CustomerName     ItemQty  Item   Seatblocks                 ItemExt
32363    McCartney, Paul      3     F04    2:218:10:4,6                   60
31316    Lennon, John        25     F01    1:13:36:1,12 1:13:37:1,13     300
Run Code Online (Sandbox Code Playgroud)

我想的空间分割(' '),然后结肠(':')Seatblocks列,但每个单元格将导致不同的列数.我有一个重新排列列的功能,所以Seatblocks列位于工作表的末尾,但我不知道该怎么做.我可以使用内置text-to-columns函数和快速宏在excel中完成它,但我的数据集有太多的记录供excel处理.

最终,我想记录约翰列侬的记录并创建多条线,每组座位的信息都在一条单独的线上.

python dataframe pandas

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

如何将带有值列表的列转换为Pandas DataFrame中的行

嗨我有这样的数据帧:

    A             B 
0:  some value    [[L1, L2]]
Run Code Online (Sandbox Code Playgroud)

我想把它改成:

    A             B 
0:  some value    L1
1:  some value    L2
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python dataframe pandas

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

在pandas数据帧中将单元格拆分为多行

我有一个包含订单数据的数据框,每个订单都有多个包存储为逗号分隔的字符串[ package&package_code]列

我想分割包数据并为每个包创建一行,包括其订单详细信息

以下是输入数据框的示例:

import pandas as pd
df = pd.DataFrame({"order_id":[1,3,7],"order_date":["20/5/2018","22/5/2018","23/5/2018"], "package":["p1,p2,p3","p4","p5,p6"],"package_code":["#111,#222,#333","#444","#555,#666"]})
Run Code Online (Sandbox Code Playgroud)

输入数据帧

这就是我想要实现的输出: 产量

我怎么能用熊猫做到这一点?

python dataframe pandas

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

"unstack"包含多行列表的pandas列

假设我有以下Pandas Dataframe:

df = pd.DataFrame({"a" : [1,2,3], "b" : [[1,2],[2,3,4],[5]]})
   a          b
0  1     [1, 2]
1  2  [2, 3, 4]
2  3        [5]
Run Code Online (Sandbox Code Playgroud)

我如何"取消堆叠""b"列中的列表以将其转换为数据帧:

   a  b
0  1  1
1  1  2
2  2  2
3  2  3
4  2  4
5  3  5
Run Code Online (Sandbox Code Playgroud)

python list dataframe pandas

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

将数据帧中的(拆分)范围拆分为多行

此问题类似于拆分(爆炸)pandas数据帧字符串条目到单独的行,但包括有关添加范围的问题.

我有一个DataFrame:

+------+---------+----------------+
| Name | Options | Email          |
+------+---------+----------------+
| Bob  | 1,2,4-6 | bob@email.com  |
+------+---------+----------------+
| John |   NaN   | john@email.com |
+------+---------+----------------+
| Mary |   1,2   | mary@email.com |
+------+---------+----------------+
| Jane | 1,3-5   | jane@email.com |
+------+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

我希望Options用逗号分隔列以及为范围添加的行.

+------+---------+----------------+
| Name | Options | Email          |
+------+---------+----------------+
| Bob  | 1       | bob@email.com  |
+------+---------+----------------+
| Bob  | 2       | bob@email.com  |
+------+---------+----------------+
| Bob  | 4       | bob@email.com  | …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

6
推荐指数
3
解决办法
694
查看次数

字典键,用字典值替换pandas dataframe列中的字符串并执行评估

我有一个熊猫数据框:

df = pd.DataFrame({'col1': ['3 a, 3 ab, 1 b',
                            '4 a, 4 ab, 1 b, 1 d',
                            np.nan] })
Run Code Online (Sandbox Code Playgroud)

和一本字典

di = {'a': 10.0,
 'ab': 2.0,
    'b': 1.5,
    'd': 1.0,
    np.nan: 0.0}
Run Code Online (Sandbox Code Playgroud)

使用字典中的值,我想像这样评估数据框行:

3 * 10.0 + 3 * 2.0 + 1 * 1.5给我最终的输出看起来像这样:

pd.DataFrame({'col1': ['3 a, 3 ab, 1 b',
                            '4 a, 4 ab, 1 b, 1 d',
                            'np.nan'], 'result': [37.5,
                            50.5,
                            0]  })
Run Code Online (Sandbox Code Playgroud)

因此,到目前为止,我只能将“,”替换为“ +”

df['col1'].str.replace(',',' +').str.split(' ')
Run Code Online (Sandbox Code Playgroud)

python pandas

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

通过复制规范化数据

注意:这个问题的确是一个重复的分离pandas数据帧字符串条目到单独的行,但这里提供的答案更通用和信息丰富,所以在所有方面到期,我选择不删除线程


我有一个'数据集',格式如下:

     id | value | ...
--------|-------|------
      a | 156   | ...
    b,c | 457   | ...
e,g,f,h | 346   | ...
    ... | ...   | ...
Run Code Online (Sandbox Code Playgroud)

我想通过复制每个ID的所有值来规范化它:

     id | value | ...
--------|-------|------
      a | 156   | ...
      b | 457   | ...
      c | 457   | ...
      e | 346   | ...
      g | 346   | ...
      f | 346   | ...
      h | 346   | ...
    ... | ...   | ...
Run Code Online (Sandbox Code Playgroud)

我正在做的是应用split-apply-combine pandas使用原则,为每个组 …

python pandas split-apply-combine

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

Python数据框包含列表的单独单元格值

我有一个数据框df

        0               1               2   
Mon ['x','y','z']   ['a','b','c']   ['a','b','c']
Tue ['a','b','c']   ['a','b','c']   ['x','y','z']
Wed ['a','b','c']   ['a','b','c']   ['a','b','c']
Run Code Online (Sandbox Code Playgroud)

列表彼此之间都有差异(也许也相似),我希望将其转换为以下形式:

    0 1 2
Mon x a a
Mon y b b
Mon z c c
Tue a a x
Tue b b y
Tue c c z
Wed a a a
Wed b b b
Wed c c c
Run Code Online (Sandbox Code Playgroud)

参考之前的一些SO问题,Explode在Pandas中列出不同长度的列表将pandas数据帧字符串条目分割(爆炸)到单独的行

我尝试使用他们的解决方案,但无法获得所需的输出。我怎样才能实现这个目标?

s1 = df[0]
s2 = df[1]
s3 = df[2]
i1 = np.arange(len(df)).repeat(s1.str.len())
i2 = np.arange(len(df)).repeat(s2.str.len())
i3 = …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe python-2.7 pandas

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

标签 统计

pandas ×10

python ×10

dataframe ×7

list ×2

numpy ×2

python-2.7 ×1

split-apply-combine ×1