小编cs9*_*s95的帖子

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万
查看次数

大熊猫运营期间的进度指标(python)

我经常对超过1500万行的数据帧执行pandas操作,我很乐意访问特定操作的进度指示器.

是否存在基于文本的pandas split-apply-combine操作的进度指示器?

例如,在以下情况中:

df_users.groupby(['userID', 'requestDate']).apply(feature_rollup)
Run Code Online (Sandbox Code Playgroud)

where feature_rollup是一个涉及多少DF列的函数,并通过各种方法创建新的用户列.对于大型数据帧,这些操作可能需要一段时间,因此我想知道是否可以在iPython笔记本中使用基于文本的输出来更新我的进度.

到目前为止,我已经尝试了Python的规范循环进度指示器,但它们没有以任何有意义的方式与pandas交互.

我希望在pandas库/文档中我忽略了一些让人们知道split-apply-combine进度的东西.一个简单的实现可能会查看apply函数工作的数据帧子集的总数,并将进度报告为这些子集的已完成部分.

这可能是需要添加到库中的吗?

python ipython pandas

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

为什么在python 0,0 ==(0,0)等于(0,False)

在Python中(我只使用Python 3.6进行了检查,但我相信它应该适用于许多以前的版本):

(0, 0) == 0, 0   # results in a two element tuple: (False, 0)
0, 0 == (0, 0)   # results in a two element tuple: (0, False)
(0, 0) == (0, 0) # results in a boolean True
Run Code Online (Sandbox Code Playgroud)

但:

a = 0, 0
b = (0, 0)
a == b # results in a boolean True
Run Code Online (Sandbox Code Playgroud)

为什么两种方法的结果不同?相等运算符是否以不同方式处理元组?

python tuples operator-precedence

116
推荐指数
5
解决办法
8173
查看次数

替换pandas DataFrame中的列值

我正在尝试替换数据帧的一列中的值.列("女性")仅包含"女性"和"男性"的值.

我尝试过以下方法:

w['female']['female']='1'
w['female']['male']='0' 
Run Code Online (Sandbox Code Playgroud)

但是收到以前结果的完全相同的副本.

理想情况下,我希望获得一些类似于以下循环元素的输出.

if w['female'] =='female':
    w['female'] = '1';
else:
    w['female'] = '0';
Run Code Online (Sandbox Code Playgroud)

我查看了陷阱文档(http://pandas.pydata.org/pandas-docs/stable/gotchas.html),但无法弄清楚为什么没有发生.

任何帮助将不胜感激.

python pandas

113
推荐指数
10
解决办法
37万
查看次数

Pandas数据帧fillna()只有一些列到位

我试图在Pandas数据帧中填充任何值,仅为列的某个子集填充0.

当我做:

import pandas as pd
df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]})
print df
df.fillna(value=0, inplace=True)
print df
Run Code Online (Sandbox Code Playgroud)

输出:

     a    b    c
0  1.0  4.0  NaN
1  2.0  5.0  NaN
2  3.0  NaN  7.0
3  NaN  6.0  8.0
     a    b    c
0  1.0  4.0  0.0
1  2.0  5.0  0.0
2  3.0  0.0  7.0
3  0.0  6.0  8.0
Run Code Online (Sandbox Code Playgroud)

它取代了每一个None0的.我想要做的是,只有更换NoneS IN列ab,但不会c.

这样做的最佳方式是什么?

python dataframe pandas

113
推荐指数
8
解决办法
12万
查看次数

Pandas groupby:如何获得字符串联合

我有这样的数据帧:

   A         B       C
0  1  0.749065    This
1  2  0.301084      is
2  3  0.463468       a
3  4  0.643961  random
4  1  0.866521  string
5  2  0.120737       !
Run Code Online (Sandbox Code Playgroud)

调用

In [10]: print df.groupby("A")["B"].sum()
Run Code Online (Sandbox Code Playgroud)

将返回

A
1    1.615586
2    0.421821
3    0.463468
4    0.643961
Run Code Online (Sandbox Code Playgroud)

现在我想为"C"列做"相同".因为该列包含字符串,sum()不起作用(尽管您可能认为它会连接字符串).我真正想看到的是每个组的一个列表或一组字符串,即

A
1    {This, string}
2    {is, !}
3    {a}
4    {random}
Run Code Online (Sandbox Code Playgroud)

我一直在努力想办法做到这一点.

Series.unique()(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.unique.html)不起作用,尽管

df.groupby("A")["B"]
Run Code Online (Sandbox Code Playgroud)

是一个

pandas.core.groupby.SeriesGroupBy object
Run Code Online (Sandbox Code Playgroud)

所以我希望任何系列方法都能奏效.有任何想法吗?

python pandas

111
推荐指数
7
解决办法
10万
查看次数

是一个调用Math.random()纯函数的函数吗?

以下是纯函数吗?

function test(min,max) {
   return  Math.random() * (max - min) + min;
}
Run Code Online (Sandbox Code Playgroud)

我的理解是纯函数遵循以下条件:

  1. 它返回从参数计算的值
  2. 除了计算返回值之外,它不做任何其他工作

如果这个定义是正确的,我的函数是纯函数吗?或者我对定义纯函数的不正确理解是什么?

javascript function pure-function

110
推荐指数
8
解决办法
1万
查看次数

如何摆脱pandas数据帧中的`Unnamed:`列

我有一种情况,有时当我读取一个csv来自df我得到一个不需要的索引列名称unnamed:0.这很烦人!我试过了

,A,B,C
0,1,2,3
1,4,5,6
2,7,8,9
Run Code Online (Sandbox Code Playgroud)

我认为这是一个解决方案,但我仍然得到file.csv专栏!有没有人对此有所了解?

python csv dataframe pandas

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

如何在循环中创建不同的变量名?

例如......

for x in range(0,9):
    string'x' = "Hello"
Run Code Online (Sandbox Code Playgroud)

所以我最终得到了string1,string2,string3 ......等于"你好"

python variables loops

105
推荐指数
7
解决办法
25万
查看次数

Python中"完全没有EOF"的完美对应点是什么?

要读取一些文本文件,在C或Pascal中,我总是使用以下代码段来读取数据,直到EOF:

while not eof do begin
  readline(a);
  do_something;
end;
Run Code Online (Sandbox Code Playgroud)

因此,我想知道如何在Python中简单快速地完成这项工作?

python iteration file eof

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