小编vk1*_*011的帖子

根据列值删除Pandas中的DataFrame行

我有以下DataFrame:

             daysago  line_race rating        rw    wrating
 line_date                                                 
 2007-03-31       62         11     56  1.000000  56.000000
 2007-03-10       83         11     67  1.000000  67.000000
 2007-02-10      111          9     66  1.000000  66.000000
 2007-01-13      139         10     83  0.880678  73.096278
 2006-12-23      160         10     88  0.793033  69.786942
 2006-11-09      204          9     52  0.636655  33.106077
 2006-10-22      222          8     66  0.581946  38.408408
 2006-09-29      245          9     70  0.518825  36.317752
 2006-09-16      258         11     68  0.486226  33.063381
 2006-08-30      275          8     72  0.446667  32.160051
 2006-02-11      475          5     65  0.164591  10.698423
 2006-01-13      504          0     70  0.142409   9.968634
 2006-01-02 …
Run Code Online (Sandbox Code Playgroud)

python pandas

441
推荐指数
12
解决办法
67万
查看次数

将空列表列添加到DataFrame

与此问题类似如何向数据框添加空列?,我有兴趣知道将一列空列表添加到DataFrame的最佳方法.

我要做的是基本上初始化一个列,当我遍历行来处理其中的一些时,然后在这个新列中添加一个填充列表来替换初始化值.

例如,如果以下是我的初始DataFrame:

df = pd.DataFrame(d = {'a': [1,2,3], 'b': [5,6,7]}) # Sample DataFrame

>>> df
   a  b
0  1  5
1  2  6
2  3  7
Run Code Online (Sandbox Code Playgroud)

然后我想最终得到类似的东西,其中每一行都已单独处理(显示的样本结果):

>>> df
   a  b          c
0  1  5     [5, 6]
1  2  6     [9, 0]
2  3  7  [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

当然,如果我尝试像df['e'] = []任何其他常量一样初始化,它认为我试图添加长度为0的项目序列,因此失败.

如果我尝试将新列初始化为NoneNaN,则在尝试将列表分配给某个位置时会遇到以下问题.

df['d'] = None

>>> df
   a  b     d
0  1  5  None
1  2  6  None
2  3  7 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

get() 用于 Pandas 系列中的默认值,使用位置

当按位置访问一行时,Pandas 有没有办法获得默认值?我知道该.get()功能,但在按索引搜索时有效。

下面是我想要做的。数据框:

In [24]: df
Out[24]:
    col1
idx
20     A
21     B
22     C
23     D
24     E
Run Code Online (Sandbox Code Playgroud)

按索引搜索并获取默认值工作正常:

In [25]: df['col1'].get(23, 'the_default_value')
Out[25]: 'D'

In [26]: df['col1'].get(28, 'the_default_value')
Out[26]: 'the_default_value'
Run Code Online (Sandbox Code Playgroud)

但是似乎没有按位置搜索的等效方法。我可以使用.iloc(),但如果该行不存在,它无助于获取默认值。例如。

In [57]: df['col1'].iloc[2]
Out[57]: 'C'

In [58]: df['col1'].iloc[6]
...
IndexError: single positional indexer is out-of-bounds
Run Code Online (Sandbox Code Playgroud)

我可以使用 来设置它try...except,或者事先检查该值是否存在,但是有没有更简洁的方法,比如.iget()(比如.locvs .iloc)?

python pandas

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

标签 统计

pandas ×3

python ×3