我想知道是否有一个函数来更改特定的列名但没有选择特定的名称或没有更改所有列名称.
我有代码:
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列,而不是只写出它们的位置来写出它们的名字.谢谢!
假设您使用名为 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) 我知道您可以将 spark 数据帧df转换为 Pandas 数据帧
df.toPandas()
但是,这需要很长时间,所以我在 databricks 中发现了一个 koala 包,它可以让我将数据用作 Pandas 数据帧(例如,能够使用 scikit learn)而无需 Pandas 数据帧。我已经有了 spark 数据框,但是我找不到将它变成考拉数据框的方法。
我有以下类型的数据帧:
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太多了.我该怎么办?
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 …
我有一个大小为 218、178 的 PNG 图像。我正在使用 matplotlib 的函数 imread 将其转换为 ndarray。我想裁剪它以获得图像的中间 64X64 部分。
我尝试使用 np.reshape 进行裁剪,但没有任何意义。我还尝试将切片作为普通数组进行切片,但由于实际数组的形状为 (218,178,3),因此无法正确切片。对于前两个维度,我希望它 (64,64,3) 从 77 到 141 和 57 到 121。
我有一个数据框如下:
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 ×5
dataframe ×4
pandas ×3
databricks ×1
dictionary ×1
matplotlib ×1
png ×1
postgresql ×1
python-3.x ×1
scaling ×1
sql ×1