Python-将数据框中的行展开n次

标签 python pandas

我需要创建一个函数来扩展数据框。例如,函数的输入是:

df = pd.DataFrame({
    'Name':['Ali', 'Ali', 'Ali', 'Sasha', 'Sasha', 'Sasha'],
    'Cart':['book', 'phonecase', 'shirt', 'phone', 'food', 'bag']
})

假设 n 值为 3。然后,对于“姓名”列中的每个人,我必须再添加 3 个新行,并将购物车保留为 np.nan。输出应该是这样的:

df = pd.DataFrame({
    'Name':['Ali', 'Ali', 'Ali', 'Ali', 'Ali', 'Ali', 'Sasha', 'Sasha', 'Sasha', 'Sasha', 'Sasha', 'Sasha'],
    'Cart':['book', 'phonecase', 'shirt', np.nan, np.nan, np.nan, 'phone', 'food', 'bag', np.nan, np.nan, np.nan]
})

如何使用copy()和append()解决这个问题?

最佳答案

您可以将np.repeatpd.Series.unique一起使用:

n = 3
print (df.append(pd.DataFrame(np.repeat(df["Name"].unique(), n), columns=["Name"])))

    Name       Cart
0    Ali       book
1    Ali  phonecase
2    Ali      shirt
3  Sasha      phone
4  Sasha       food
5  Sasha        bag
0    Ali        NaN
1    Ali        NaN
2    Ali        NaN
3  Sasha        NaN
4  Sasha        NaN
5  Sasha        NaN

关于Python-将数据框中的行展开n次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70098068/

相关文章:

python - 如何用循环创建变量?

python - 是否存在生成器装饰器?

python - 与 popen python 一起使用时,输入命令似乎不起作用

python - pandas 随机播放最后 N 行

Python Pandas : fast way to flatten JSON into rows by a surrogate key

python - 将数据帧放入基于一列的数据帧字典中

python - 在 Django 中获取唯一外键?

Pandas 数据框通过 .loc 一次创建多行

python - Pandas 在高于 0.21.0 的版本上使用 fillna() 和 sum() 返回不同的结果

python - GetLastInputInfo 和 GetTickCount 不一致