【问题标题】:Fetching records and then putting in a new column获取记录,然后放入新列
【发布时间】:2018-08-13 06:54:54
【问题描述】:

我正在为我的一个项目使用 Pandas 数据框。

我有一个列名 Count,该列中有整数值。

我每小时有 720 个值,即 24 * 30 天。

我想运行一个循环,该循环最初可以从数据框中获取前 24 个值并放入新列,然后取出下一个 24 并放入新列,然后依此类推。

例如:

输入:

34
45
76
87
98
34

输出:

34   87
45   98
76   34

这里是 6 行,我将前 3 个值放入第一列,接下来的 3 个放入第二列。

有人可以帮忙编写代码/程序吗?这会很有帮助。

谢谢!

【问题讨论】:

    标签: python pandas loops if-statement


    【解决方案1】:

    您也可以尝试在pd.Series.values 上执行numpyreshape 方法。

    s = pd.Series(np.arange(720))
    df = pd.DataFrame(s.values.reshape((30,24)).T)
    

    split(指定要拆分成多少个数组),

    df = pd.DataFrame({"day" + str(i): v for i, v in enumerate(np.split(s.values, 30))})
    

    【讨论】:

    • TypeError: 无法将系列转换为
    • 当我输入我的数据框列代替 720 作为 nf['Count'] 。它给了我以下错误: TypeError: cannot convert the series to
    • 您能否让我知道在第二个示例中我可以将列名作为 .... 我的数据框是 nf 而列是 Count
    • 你应该只使用pd.DataFrame(nf['Court'].values.reshape((30,24)).T)
    • "day" + str(i) 这将是第二种方法中的列名。您也可以稍后在方法 1 中指定列名。
    猜你喜欢
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多