gpt4 book ai didi

python - 在一帧中的 block_wise 索引下连接两个不同长度的数据帧

转载 作者:太空宇宙 更新时间:2023-11-03 15:56:38 25 4
gpt4 key购买 nike

我需要连接两种不同长度的日期框:

一个数据框如下所示,带有索引但 block 是 block 状的: enter image description here

一共有三个block_wise索引[0,1,2,3,4,5,6,7],[0,1,2,3,4],[0,1,2,3,4, 5,6],总长度为20.

第二帧只有一列: enter image description here此列表示一个类似枚举的变量,可以是重复的,可以是 int 或 string。但此列/帧的长度严格等于第一帧中索引的 block 级别。所以一帧中有三个 block 索引,两个的长度为3。

我想要的是下面的串联表: enter image description here

在 Pandas 中最好的方法是什么? block 级别和因子级别可能远远超过 3。

最佳答案

您可以使用 mapcumsum 创建的新列 Ddict bool 掩码:

df = pd.DataFrame({'A':range(1,21)}, index=[0,1,2,3,4,5,6,7]+[0,1,2,3,4]+[0,1,2,3,4,5,6])
df['B'] = 'b_' + df.A.astype('str')
df['C'] = 'c_' + df.A.astype('str')
df['A'] = 'a_' + df.A.astype('str')

df1 = pd.DataFrame({'D':['X','Y','Z']})

df['D'] = (df.index == 0).cumsum() - 1

d = df1['D'].to_dict()
print (d)
{0: 'X', 1: 'Y', 2: 'Z'}
df.D = df.D.map(d)
print (df)
A B C D
0 a_1 b_1 c_1 X
1 a_2 b_2 c_2 X
2 a_3 b_3 c_3 X
3 a_4 b_4 c_4 X
4 a_5 b_5 c_5 X
5 a_6 b_6 c_6 X
6 a_7 b_7 c_7 X
7 a_8 b_8 c_8 X
0 a_9 b_9 c_9 Y
1 a_10 b_10 c_10 Y
2 a_11 b_11 c_11 Y
3 a_12 b_12 c_12 Y
4 a_13 b_13 c_13 Y
0 a_14 b_14 c_14 Z
1 a_15 b_15 c_15 Z
2 a_16 b_16 c_16 Z
3 a_17 b_17 c_17 Z
4 a_18 b_18 c_18 Z
5 a_19 b_19 c_19 Z
6 a_20 b_20 c_20 Z

关于python - 在一帧中的 block_wise 索引下连接两个不同长度的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42802626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com