【问题标题】:How do I add a column with a repeating series of values to a dataframe?如何将具有重复系列值的列添加到数据框中?
【发布时间】:2020-10-26 16:50:25
【问题描述】:

我想在数据框中添加一个包含重复系列值的列,列表中的每个值都重复设定的次数,例如:

   x   y  z
   0   2  1
   2  15  1
   0  10  2
   2  20  2
   0  30  3
   2  50  3

z 中的每个值重复两次。

到目前为止,我有这个重复整个列表而不是列表中的每个项目的次数:

data = [[0, 2], [2, 15], [0, 10], [2, 20], [0, 30], [2, 50]]
df1 = pd.DataFrame(data, columns = ['x', 'y'])

df1['z']=0
np.put(df1['z'], np.arange(len(df1)), [1, 2])
print(df1)

结果:

x   y  z
0   2  1
2  15  2
0  10  3
2  20  1
0  30  2
2  50  3

如何指定重复列表中每个项目而不是重复整个列表的次数?此外,理想情况下,如果该解决方案可以应用于字符串和整数,那就太好了,非常感谢!

【问题讨论】:

  • df1['z'] = np.tile(np.arange(len(df1)), 2)?

标签: python pandas numpy


【解决方案1】:

不确定这是否能回答您的问题,但是:

使用列表理解

ntimes = 2 # number of times you repeat each item
yourlist = [1,2,3]
df1['z'] = [i for i in yourlist for _ in range(ntimes)]

做你想要的。

   x   y  z
0  0   2  1
1  2  15  1
2  0  10  2
3  2  20  2
4  0  30  3
5  2  50  3

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2018-08-20
    • 1970-01-01
    • 2015-06-13
    相关资源
    最近更新 更多