相关疑难解决方法(0)

为什么范围(开始,结束)不包括结束?

>>> range(1,11)
Run Code Online (Sandbox Code Playgroud)

给你

[1,2,3,4,5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

为什么不1-11?

他们是否只是随意决定这样做,或者它是否具有一些我没有看到的价值?

python range

280
推荐指数
9
解决办法
27万
查看次数

将Pandas DataFrame的行转换为列标题,

我必须处理的数据有点乱.它的数据中包含头名.如何从现有的pandas数据框中选择一行并将其(重命名为)列标题?

我想做的事情如下:

header = df[df['old_header_name1'] == 'new_header_name1']

df.columns = header
Run Code Online (Sandbox Code Playgroud)

python rename dataframe pandas

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

熊猫:dropna之后的原地重命名表现特别下降

我已将此报告为大熊猫问题.与此同时,我发布此处希望节省其他时间,以防他们遇到类似的问题.

在分析需要优化的进程时,我发现重命名列不在适当位置可以提高x120的性能(执行时间).分析表明这与垃圾收集有关(见下文).

此外,通过避免使用dropna方法来恢复预期的性能.

以下简短示例演示了因子x12:

import pandas as pd
import numpy as np
Run Code Online (Sandbox Code Playgroud)

就地=真

%%timeit
np.random.seed(0)
r,c = (7,3)
t = np.random.rand(r)
df1 = pd.DataFrame(np.random.rand(r,c), columns=range(c), index=t)
indx = np.random.choice(range(r),r/3, replace=False)
t[indx] = np.random.rand(len(indx))
df2 = pd.DataFrame(np.random.rand(r,c), columns=range(c), index=t)
df = (df1-df2).dropna()
## inplace rename:
df.rename(columns={col:'d{}'.format(col) for col in df.columns}, inplace=True)
Run Code Online (Sandbox Code Playgroud)

100个循环,最佳3:每循环15.6毫秒

第一输出线%%prun:

ncalls tottime percall cumtime percall filename:lineno(function)

1  0.018 0.018 0.018 0.018 {gc.collect}
Run Code Online (Sandbox Code Playgroud)

就地=假

%%timeit
np.random.seed(0)
r,c = (7,3)
t = np.random.rand(r)
df1 = pd.DataFrame(np.random.rand(r,c), …
Run Code Online (Sandbox Code Playgroud)

python performance in-place pandas

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

标签 统计

python ×3

pandas ×2

dataframe ×1

in-place ×1

performance ×1

range ×1

rename ×1