gpt4 book ai didi

python - 在按 DF 长度连接时将列表添加到数据框

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:42 25 4
gpt4 key购买 nike

无法为此找到解决方案,如果这看起来很简单,我们深表歉意。

我有一个 df 如下:

ID, Week
5, 1
6, 1
7, 1

我有一个原因代码列表如下

['Work', 'Holiday', 'Sick', 'Jury'] 

我想做的是将其添加到我当前的数据框中,然后将其乘以每个唯一 ID

所以我会有类似的东西(为简洁起见,我将只使用 1 个唯一 ID)。,

ID, Week, Reason
5, 1, 'Work'
5, 1, 'Holiday'
5, 1, 'Sick',
5, 1, 'Jury'

我已经尝试了各种不同轴的连接方式,但我对如何处理这个问题一无所知。

如有任何帮助,我们将不胜感激。

最佳答案

让我们做 unnesting

df['Reason']=[l]*len(df)
unnesting(df,['Reason'])
Out[1014]:
Reason ID Week
0 Work 5 1
0 Holiday 5 1
0 Sick 5 1
0 Jury 5 1
1 Work 6 1
1 Holiday 6 1
1 Sick 6 1
1 Jury 6 1
2 Work 7 1
2 Holiday 7 1
2 Sick 7 1
2 Jury 7 1

# attached self-define function
def unnesting(df, explode):
idx=df.index.repeat(df[explode[0]].str.len())
df1=pd.concat([pd.DataFrame({x:np.concatenate(df[x].values)} )for x in explode],axis=1)
df1.index=idx
return df1.join(df.drop(explode,1),how='left')

或者我们做交叉连接

df.merge(pd.DataFrame({'Reason':l}).assign(Week=1))
Out[1020]:
ID Week Reason
0 5 1 Work
1 5 1 Holiday
2 5 1 Sick
3 5 1 Jury
4 6 1 Work
5 6 1 Holiday
6 6 1 Sick
7 6 1 Jury
8 7 1 Work
9 7 1 Holiday
10 7 1 Sick
11 7 1 Jury

关于python - 在按 DF 长度连接时将列表添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55267090/

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