如果我有一个df:
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['a', 'b', 'c'])
并希望将第二列“b”附加到“新”df 的末尾,其中包含“a”和“b”列以及包含“b”列名称的名称列,然后是第三列“ c”并与“a”一起附加到新df的末尾,名称“c”附加到名称列。它是时间序列数据,日期时间在“a”中,变量在 b 和 c 中,有时有 20 个变量,有时有 1 或 2 个。
我如何以一种漂亮而有效的方式做到这一点。现在我正在这样做,但必须为略有不同的 df 但具有相同的想法做 100 次。
col_nam_list = list(df.columns.values)
df_1 = pd.DataFrame()
df_1["a"] = df["a"]
df_1["name"] = col_nam_list[1]
df_1["value"] = df["b"]
df_2 = pd.DataFrame()
df_2["a"] = df["a"]
df_2["name"] = col_nam_list[2]
df_2["value"] = df["c"]
result = pd.concat([df_1, df_2])
现在这写起来并不有趣,而且看起来很丑陋和不必要的长。如何改进我的方法?
BR