小编Ant*_*uiz的帖子

更改多个列名但不是全部 - Pandas Python

我想知道是否有一个函数来更改特定的列名但没有选择特定的名称或没有更改所有列名称.

我有代码:

df=df.rename(columns = {'nameofacolumn':'newname'})
Run Code Online (Sandbox Code Playgroud)

但有了它,我必须手动改变每个人写下每个名字.还要改变我所有的一切

df = df.columns['name1','name2','etc']
Run Code Online (Sandbox Code Playgroud)

我想有一个功能来更改第1列和第3列,而不是只写出它们的位置来写出它们的名字.谢谢!

python dataframe pandas

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

在导入到 Jupyter 笔记本时更新了 py 文件中的脚本

假设您使用名为 my_func() 的函数创建了一个名为 funcs 的 py 文件。

在使用 Jupyter Notebook 时,您希望使用以下内容导入所述函数:

from funcs import my_func
Run Code Online (Sandbox Code Playgroud)

现在你用它做一些事情,即

x = my_func(bla)
Run Code Online (Sandbox Code Playgroud)

之后,您要从 my_func 修改一些内容。所以我改变它并保存它。如果我重新运行上面发布的代码,将看不到更改,因此我必须重新启动内核以运行具有上述更改的功能。有没有有效的方法来做到这一点?

注意:我知道 reload 模块允许您重新加载整个 funcs py 文件,但我想在更具体的函数级别执行此操作。不是整个剧本。通过重新加载,我将不得不导入 funcs 而不仅仅是 my_func,因此必须编写

x = funcs.my_func(bla)
Run Code Online (Sandbox Code Playgroud)

这不是我的目标。

回答:

import sys, importlib
importlib.reload(sys.modules['funcs])
from funcs import my_func
Run Code Online (Sandbox Code Playgroud)

python jupyter-notebook

6
推荐指数
0
解决办法
1250
查看次数

如何将 spark 数据帧转换为 databrick koalas 数据帧?

我知道您可以将 spark 数据帧df转换为 Pandas 数据帧

df.toPandas()

但是,这需要很长时间,所以我在 databricks 中发现了一个 koala 包,它可以让我将数据用作 Pandas 数据帧(例如,能够使用 scikit learn)而无需 Pandas 数据帧。我已经有了 spark 数据框,但是我找不到将它变成考拉数据框的方法。

dataframe python-3.x databricks

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

从Pandas Python数据帧重新调整为(0,1)某些列

我有以下类型的数据帧:

  Channel   Region  Fresh   Milk    Grocery Frozen  Detergents_Paper    Delicassen
0   2         3     12669   9656    7561    214        2674             1338
1   2         3     7057    9810    9568    1762       3293             1776
2   2         3     6353    8808    7684    2405       3516             7844
3   1         3     13265   1196    4221    6404       507              1788
4   2         3     22615   5410    7198    3915       1777             5185
Run Code Online (Sandbox Code Playgroud)

我想做两件事:

1)能够仅重新调整某些列而不是所有列,以使它们在0,1之间.我想只选择某些列,但不是通过他们的名字,而是选择他们的位置.想象一下,我想要改变200并且不想写所有这些.

我试过的代码是:

df /= df.max() 
Run Code Online (Sandbox Code Playgroud)

但它使所有列都在(0,1)之间而不仅仅是我想要的列.我找不到只选择其中一部分的方法.

2)我还想重新调整列,但不是它们之间,我的意思是我想只为牛奶制作一个刻度,另一个仅用于冷冻,例如.

我想重新调整每一个,例如在100之间划分,因为它们太大了,但是对于另一个列,我想将它除以10之间因为100太多了.我该怎么办?

python scaling dataframe pandas

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

Getting median with counts

I have a dataset, let's call it d1, with the following information:

ID count
1   5
2   2 
3   6 
4   6
5   4
6   3
Run Code Online (Sandbox Code Playgroud)

If I would want the median, it would be calculated with [1,1,1,1,1,2,2,...,6,6,6], since there is a count with the amount of times repeated. The results would then be 3.5 (since we got 3 and 4 and we do the average between them). I've been trying to use limit with a subquery but I cannot …

sql postgresql

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

按中心裁剪图像

我有一个大小为 218、178 的 PNG 图像。我正在使用 matplotlib 的函数 imread 将其转换为 ndarray。我想裁剪它以获得图像的中间 64X64 部分。

我尝试使用 np.reshape 进行裁剪,但没有任何意义。我还尝试将切片作为普通数组进行切片,但由于实际数组的形状为 (218,178,3),因此无法正确切片。对于前两个维度,我希望它 (64,64,3) 从 77 到 141 和 57 到 121。

python png matplotlib multidimensional-array

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

将 DataFrame 转换为字典,其中标题为键,列为带有值的数组

我有一个数据框如下:

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

我想要一本这样的字典:

{A: [1,2,3,4], B:[6,5,4,2], C:[1,7,9,2]}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用普通的df.to_dict(),但效果还差得远。如果我使用转置数据框,因此df.T.to_dict()它会接近,但我有这样的东西:

{0: {A: 1, B: 6, C:1} , ... , 4:{A: 4, B: 2, C: 2 } }
Run Code Online (Sandbox Code Playgroud)

堆栈溢出中的问题仅限于每个键只有一个值的字典,而不是数组。

使用和避免任何 for 循环对我来说非常有价值to_dict(),因为我使用的数据库相当大,并且我希望计算复杂性尽可能低。

python dictionary dataframe pandas

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