我有一个数据帧,我想以一种特定的方式更改其中的列.我想将第0-27列更改为d0、d1、d2、...d27.28-56到d10-d127,以及列(56-84)到(d20-d227)中的第三个28等.你能帮我吗?

我已经用另一个数据帧使用7步重命名了df列.以下是我为此使用的代码.但是,这对新案件不起作用.

df = dataframe with size (10*71. The first column is id)
b = df.shape[1]-1
df.columns = np.hstack(['id', np.core.defchararray.add('d', (b%7+b//7*10).astype(str))])

新的 case 是:

df= dataframe with size (10*281. The first column is id)
import numpy as np 
import pandas as pd
A = np.random.randint(10, size = (10, 281))
A_df = pd.DataFrame(A)

你能帮帮我吗?非常感谢

推荐答案

您应该使用整数除法和模运算来获得新的列名.

import numpy as np
import pandas as pd

A = np.random.randint(10, size=(10, 281))
A_df = pd.DataFrame(A)

b = A_df.shape[1] - 1
col_indices = np.arange(b) // 28 * 10 + np.arange(b) % 28
new_col_names = np.hstack(['id', np.core.defchararray.add('d', col_indices.astype(str))])
A_df.columns = new_col_names

print(A_df)

Python相关问答推荐

一切似乎都可以自己工作,但当我把它放在一起时,它会抛出RegexMatch错误

在pandas DataFrame上运行apply()时如何访问DateTime索引?

如何将自动创建的代码转换为类而不是字符串?

调试回归无法解决我的问题

这家einsum运营在做什么?E = NP.einsum(aj,kl-il,A,B)

Python主进程和分支进程如何共享gc信息?

更改Seaborn条形图中的x轴日期时间限制

在for循环中仅执行一次此操作

拆分pandas列并创建包含这些拆分值计数的新列

无法使用equals_html从网址获取全文

如何使用Google Gemini API为单个提示生成多个响应?

使用FASTCGI在IIS上运行Django频道

使用numpy提取数据块

如何在polars(pythonapi)中解构嵌套 struct ?

删除字符串中第一次出现单词后的所有内容

如何获得每个组的时间戳差异?

pandas:排序多级列

如何并行化/加速并行numba代码?

try 检索blob名称列表时出现错误填充错误""

Python全局变量递归得到不同的结果