如何将 1 列数据框转换为 8 列
How to convert 1 column dataframe to 8 column
如何将 1 列数据帧数组(在 python 中)转换为 8 列数据帧?
我试过使用 Numpy 重塑函数如下:
data = []
for x in range(0, 24):
data.append(x)
df = pd.DataFrame(data)
reshaped = pd.DataFrame(np.reshape(df.columns.to_numpy(), (1, 8)), columns=["Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8"])
但是这样做时,出现以下错误:
ValueError: cannot reshape array of size 1 into shape (8)
所以,我期待输出
3 行 x 8 列 0 到 24 之间的数字
你有什么建议吗?
我正在对您所追求的内容做出一些假设,即 8 列 3 行,其中您的原始范围按顺序分布在新的较短行中。
reshaped = pd.DataFrame(np.reshape(df.to_numpy(), (3, 8)), columns=["Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8"])
Heading1 Heading2 Heading3 Heading4 Heading5 Heading6 Heading7 \
0 0 1 2 3 4 5 6
1 8 9 10 11 12 13 14
2 16 17 18 19 20 21 22
Heading8
0 7
1 15
2 23
这里有两大区别:
- 我们不需要由数据框的列组成的 numpy 数组。我们想要整个 1x24 数据帧之一。所以只是
df.to_numpy()
- 输出的重塑 numpy 数组的形状必须与原始数组共享相同的倍数
1*24 != 1*8
,而不是我们需要一个 3 x 8 大小的数组。
试试这个:
data = np.arange(24)
df = pd.DataFrame(data, columns=['value'])
new_data = np.array(df['value']).reshape(-1, 8)
new_df = pd.DataFrame(new_data)
new_df.columns = ["Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8"]
输出:
Heading1 Heading2 Heading3 Heading4 Heading5 Heading6 Heading7 Heading8
0 0 1 2 3 4 5 6 7
1 8 9 10 11 12 13 14 15
2 16 17 18 19 20 21 22 23
如何将 1 列数据帧数组(在 python 中)转换为 8 列数据帧?
我试过使用 Numpy 重塑函数如下:
data = []
for x in range(0, 24):
data.append(x)
df = pd.DataFrame(data)
reshaped = pd.DataFrame(np.reshape(df.columns.to_numpy(), (1, 8)), columns=["Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8"])
但是这样做时,出现以下错误:
ValueError: cannot reshape array of size 1 into shape (8)
所以,我期待输出 3 行 x 8 列 0 到 24 之间的数字
你有什么建议吗?
我正在对您所追求的内容做出一些假设,即 8 列 3 行,其中您的原始范围按顺序分布在新的较短行中。
reshaped = pd.DataFrame(np.reshape(df.to_numpy(), (3, 8)), columns=["Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8"])
Heading1 Heading2 Heading3 Heading4 Heading5 Heading6 Heading7 \
0 0 1 2 3 4 5 6
1 8 9 10 11 12 13 14
2 16 17 18 19 20 21 22
Heading8
0 7
1 15
2 23
这里有两大区别:
- 我们不需要由数据框的列组成的 numpy 数组。我们想要整个 1x24 数据帧之一。所以只是
df.to_numpy()
- 输出的重塑 numpy 数组的形状必须与原始数组共享相同的倍数
1*24 != 1*8
,而不是我们需要一个 3 x 8 大小的数组。
试试这个:
data = np.arange(24)
df = pd.DataFrame(data, columns=['value'])
new_data = np.array(df['value']).reshape(-1, 8)
new_df = pd.DataFrame(new_data)
new_df.columns = ["Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8"]
输出:
Heading1 Heading2 Heading3 Heading4 Heading5 Heading6 Heading7 Heading8
0 0 1 2 3 4 5 6 7
1 8 9 10 11 12 13 14 15
2 16 17 18 19 20 21 22 23