在python中创建数字不断增加的数据框

发布于 2025-01-16 18:35:24 字数 281 浏览 0 评论 0原文

我想创建以下数据框:n 是行数,m 是列数。 在 R 中,这将通过以下方式生成:

ia=array((1:m),c(m,n))

但我不知道如何在 python 中实现相同的效果。

输入图片此处描述

亲切的问候,

I want to create the following dataframe: n is the number of rows, and m is the columns.
In R, this would be generated by:

ia=array((1:m),c(m,n))

But I do not know how i can achieve the same in python.

enter image description here

Kind regards,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沦落红尘 2025-01-23 18:35:24

使用 numpy.broadcast_toDataFrame 构造函数:

m = 24
n = 13
df = pd.DataFrame(np.broadcast_to(np.arange(1, m + 1)[:, None], (m, n)))
print (df)
    0   1   2   3   4   5   6   7   8   9   10  11  12
0    1   1   1   1   1   1   1   1   1   1   1   1   1
1    2   2   2   2   2   2   2   2   2   2   2   2   2
2    3   3   3   3   3   3   3   3   3   3   3   3   3
3    4   4   4   4   4   4   4   4   4   4   4   4   4
4    5   5   5   5   5   5   5   5   5   5   5   5   5
5    6   6   6   6   6   6   6   6   6   6   6   6   6
6    7   7   7   7   7   7   7   7   7   7   7   7   7
7    8   8   8   8   8   8   8   8   8   8   8   8   8
8    9   9   9   9   9   9   9   9   9   9   9   9   9
9   10  10  10  10  10  10  10  10  10  10  10  10  10
10  11  11  11  11  11  11  11  11  11  11  11  11  11
11  12  12  12  12  12  12  12  12  12  12  12  12  12
12  13  13  13  13  13  13  13  13  13  13  13  13  13
13  14  14  14  14  14  14  14  14  14  14  14  14  14
14  15  15  15  15  15  15  15  15  15  15  15  15  15
15  16  16  16  16  16  16  16  16  16  16  16  16  16
16  17  17  17  17  17  17  17  17  17  17  17  17  17
17  18  18  18  18  18  18  18  18  18  18  18  18  18
18  19  19  19  19  19  19  19  19  19  19  19  19  19
19  20  20  20  20  20  20  20  20  20  20  20  20  20
20  21  21  21  21  21  21  21  21  21  21  21  21  21
21  22  22  22  22  22  22  22  22  22  22  22  22  22
22  23  23  23  23  23  23  23  23  23  23  23  23  23
23  24  24  24  24  24  24  24  24  24  24  24  24  24

df = df.rename(index = lambda x: x+1, columns=lambda x: x+1)
print (df)
    1   2   3   4   5   6   7   8   9   10  11  12  13
1    1   1   1   1   1   1   1   1   1   1   1   1   1
2    2   2   2   2   2   2   2   2   2   2   2   2   2
3    3   3   3   3   3   3   3   3   3   3   3   3   3
4    4   4   4   4   4   4   4   4   4   4   4   4   4
5    5   5   5   5   5   5   5   5   5   5   5   5   5
6    6   6   6   6   6   6   6   6   6   6   6   6   6
7    7   7   7   7   7   7   7   7   7   7   7   7   7
8    8   8   8   8   8   8   8   8   8   8   8   8   8
9    9   9   9   9   9   9   9   9   9   9   9   9   9
10  10  10  10  10  10  10  10  10  10  10  10  10  10
11  11  11  11  11  11  11  11  11  11  11  11  11  11
12  12  12  12  12  12  12  12  12  12  12  12  12  12
13  13  13  13  13  13  13  13  13  13  13  13  13  13
14  14  14  14  14  14  14  14  14  14  14  14  14  14
15  15  15  15  15  15  15  15  15  15  15  15  15  15
16  16  16  16  16  16  16  16  16  16  16  16  16  16
17  17  17  17  17  17  17  17  17  17  17  17  17  17
18  18  18  18  18  18  18  18  18  18  18  18  18  18
19  19  19  19  19  19  19  19  19  19  19  19  19  19
20  20  20  20  20  20  20  20  20  20  20  20  20  20
21  21  21  21  21  21  21  21  21  21  21  21  21  21
22  22  22  22  22  22  22  22  22  22  22  22  22  22
23  23  23  23  23  23  23  23  23  23  23  23  23  23
24  24  24  24  24  24  24  24  24  24  24  24  24  24

Use numpy.broadcast_to with DataFrame constructor:

m = 24
n = 13
df = pd.DataFrame(np.broadcast_to(np.arange(1, m + 1)[:, None], (m, n)))
print (df)
    0   1   2   3   4   5   6   7   8   9   10  11  12
0    1   1   1   1   1   1   1   1   1   1   1   1   1
1    2   2   2   2   2   2   2   2   2   2   2   2   2
2    3   3   3   3   3   3   3   3   3   3   3   3   3
3    4   4   4   4   4   4   4   4   4   4   4   4   4
4    5   5   5   5   5   5   5   5   5   5   5   5   5
5    6   6   6   6   6   6   6   6   6   6   6   6   6
6    7   7   7   7   7   7   7   7   7   7   7   7   7
7    8   8   8   8   8   8   8   8   8   8   8   8   8
8    9   9   9   9   9   9   9   9   9   9   9   9   9
9   10  10  10  10  10  10  10  10  10  10  10  10  10
10  11  11  11  11  11  11  11  11  11  11  11  11  11
11  12  12  12  12  12  12  12  12  12  12  12  12  12
12  13  13  13  13  13  13  13  13  13  13  13  13  13
13  14  14  14  14  14  14  14  14  14  14  14  14  14
14  15  15  15  15  15  15  15  15  15  15  15  15  15
15  16  16  16  16  16  16  16  16  16  16  16  16  16
16  17  17  17  17  17  17  17  17  17  17  17  17  17
17  18  18  18  18  18  18  18  18  18  18  18  18  18
18  19  19  19  19  19  19  19  19  19  19  19  19  19
19  20  20  20  20  20  20  20  20  20  20  20  20  20
20  21  21  21  21  21  21  21  21  21  21  21  21  21
21  22  22  22  22  22  22  22  22  22  22  22  22  22
22  23  23  23  23  23  23  23  23  23  23  23  23  23
23  24  24  24  24  24  24  24  24  24  24  24  24  24

df = df.rename(index = lambda x: x+1, columns=lambda x: x+1)
print (df)
    1   2   3   4   5   6   7   8   9   10  11  12  13
1    1   1   1   1   1   1   1   1   1   1   1   1   1
2    2   2   2   2   2   2   2   2   2   2   2   2   2
3    3   3   3   3   3   3   3   3   3   3   3   3   3
4    4   4   4   4   4   4   4   4   4   4   4   4   4
5    5   5   5   5   5   5   5   5   5   5   5   5   5
6    6   6   6   6   6   6   6   6   6   6   6   6   6
7    7   7   7   7   7   7   7   7   7   7   7   7   7
8    8   8   8   8   8   8   8   8   8   8   8   8   8
9    9   9   9   9   9   9   9   9   9   9   9   9   9
10  10  10  10  10  10  10  10  10  10  10  10  10  10
11  11  11  11  11  11  11  11  11  11  11  11  11  11
12  12  12  12  12  12  12  12  12  12  12  12  12  12
13  13  13  13  13  13  13  13  13  13  13  13  13  13
14  14  14  14  14  14  14  14  14  14  14  14  14  14
15  15  15  15  15  15  15  15  15  15  15  15  15  15
16  16  16  16  16  16  16  16  16  16  16  16  16  16
17  17  17  17  17  17  17  17  17  17  17  17  17  17
18  18  18  18  18  18  18  18  18  18  18  18  18  18
19  19  19  19  19  19  19  19  19  19  19  19  19  19
20  20  20  20  20  20  20  20  20  20  20  20  20  20
21  21  21  21  21  21  21  21  21  21  21  21  21  21
22  22  22  22  22  22  22  22  22  22  22  22  22  22
23  23  23  23  23  23  23  23  23  23  23  23  23  23
24  24  24  24  24  24  24  24  24  24  24  24  24  24
薆情海 2025-01-23 18:35:24

您可以使用 np.repeatnp.tile

n = 5  # 13
m = 8  # 24

# Enhanced by @mozway
df = pd.DataFrame(np.tile(np.arange(1, m+1),(n, 1)).T)

# OR

df = pd.DataFrame(np.repeat(np.arange(1, m+1), m).reshape(-1, m))

print(df)

# Output
   0  1  2  3  4
0  1  1  1  1  1
1  2  2  2  2  2
2  3  3  3  3  3
3  4  4  4  4  4
4  5  5  5  5  5
5  6  6  6  6  6
6  7  7  7  7  7
7  8  8  8  8  8

You can use np.repeat or np.tile

n = 5  # 13
m = 8  # 24

# Enhanced by @mozway
df = pd.DataFrame(np.tile(np.arange(1, m+1),(n, 1)).T)

# OR

df = pd.DataFrame(np.repeat(np.arange(1, m+1), m).reshape(-1, m))

print(df)

# Output
   0  1  2  3  4
0  1  1  1  1  1
1  2  2  2  2  2
2  3  3  3  3  3
3  4  4  4  4  4
4  5  5  5  5  5
5  6  6  6  6  6
6  7  7  7  7  7
7  8  8  8  8  8
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文