【问题标题】:Adding a column of repeating values to dataframe向数据框添加一列重复值
【发布时间】:2018-05-01 02:32:04
【问题描述】:

我有一些财务交易的季度级数据,所以数据集相当大。我现在想将以下值添加到一遍又一遍地重复的新列中:

[-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12]

该列应如下所示:

A
-12
-11
-10
...
11
12
-12
-11
...
11
12

所以基本上只是那个列表一遍又一遍地重复,直到我的数据框的最后一行。我希望这个问题足够清楚。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    试试这个:

    N = len(df)
    df['A'] = pd.Series(np.tile(lst, N//len(lst))).iloc[:N]
    

    【讨论】:

    • 它似乎不起作用,这些值没有像我想要的那样重复。它们都混杂在一起,似乎没有遵循特定的模式。我也收到此消息:正在尝试在 DataFrame 中的切片副本上设置值。尝试改用 .loc[row_indexer,col_indexer] = value 查看文档中的警告:pandas.pydata.org/pandas-docs/stable/…
    • 没关系,您的解决方案有效。我忘了重新索引我的数据框,这就是为什么数字没有像我希望的那样重复。感谢您的回答
    【解决方案2】:

    itertools.cycle 将无限重复一个迭代器,而itertools.islice 只占用前导部分。

    pd.Series(list(itertools.islice(itertools.cycle(range(-12,13)), len(df))))
    

    【讨论】:

      【解决方案3】:

      使用numpyplace

      a=np.zeros(len(data_file))
      np.place(a,a>=0,np.array([1,2]))
      a
      Out[526]: array([1., 2., 1., 2.])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-19
        • 2023-03-14
        • 2016-08-30
        • 1970-01-01
        • 2021-11-24
        • 2019-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多