在 pandas DF 中添加行作为数字列索引?
Add row in pandas DF as numeric column index?
我已经尝试了几种方法,但都被难住了。我的最后一次尝试产生了一个错误,上面写着:"ValueError: Plan shapes are not aligned"
所以我有一个数据框,根据从外部文件读取的数据,它最多可以包含大约 1,000 列。这些列都有自己的 labels/names,即 "Name"、"BirthYear"、Hometown”等。我想在从 0 到 dataframe 的开头添加一行(有多少列),所以如果数据最终有 232 列,这个新的第一行的值为 0,1,2,3,4....229,230,231,232.
我正在做的是创建一个单行数据帧,其中包含与主 ("mega") 数据帧中一样多的 columns/values,然后将它们连接起来。它向我抛出了这个形状错误,但是当我打印每一帧的形状时,它们在长度上是匹配的。不确定我做错了什么,任何帮助将不胜感激。谢谢!
colList = list(range(0, len(mega.columns)))
indexRow = pd.DataFrame(colList).T
print(indexRow)
print(indexRow.shape)
print(mega.shape)
mega = pd.concat([indexRow, mega],axis=0)
这是结果...
0 1 2 3 4 5 6 7 8 9 ... 1045 \
0 0 1 2 3 4 5 6 7 8 9 ... 1045
1046 1047 1048 1049 1050 1051 1052 1053 1054
0 1046 1047 1048 1049 1050 1051 1052 1053 1054
[1 rows x 1055 columns]
(1, 1055)
(4, 1055)
ValueError: Plan shapes are not aligned
这是一种方法。根据您的数据,这可能会混合类型(例如,如果一列是时间戳)。此外,这会以兆为单位重置您的索引。
mega = pd.DataFrame(np.random.randn(3,3), columns=list('ABC'))
indexRow = pd.DataFrame({col: [n] for n, col in enumerate(mega)})
>>> pd.concat([indexRow, mega], ignore_index=True)
A B C
0 0.000000 1.000000 2.000000
1 0.413145 -1.475655 0.529429
2 0.416250 -0.055519 1.611539
3 0.154045 -0.038109 1.020616
我已经尝试了几种方法,但都被难住了。我的最后一次尝试产生了一个错误,上面写着:"ValueError: Plan shapes are not aligned"
所以我有一个数据框,根据从外部文件读取的数据,它最多可以包含大约 1,000 列。这些列都有自己的 labels/names,即 "Name"、"BirthYear"、Hometown”等。我想在从 0 到 dataframe 的开头添加一行(有多少列),所以如果数据最终有 232 列,这个新的第一行的值为 0,1,2,3,4....229,230,231,232.
我正在做的是创建一个单行数据帧,其中包含与主 ("mega") 数据帧中一样多的 columns/values,然后将它们连接起来。它向我抛出了这个形状错误,但是当我打印每一帧的形状时,它们在长度上是匹配的。不确定我做错了什么,任何帮助将不胜感激。谢谢!
colList = list(range(0, len(mega.columns)))
indexRow = pd.DataFrame(colList).T
print(indexRow)
print(indexRow.shape)
print(mega.shape)
mega = pd.concat([indexRow, mega],axis=0)
这是结果...
0 1 2 3 4 5 6 7 8 9 ... 1045 \
0 0 1 2 3 4 5 6 7 8 9 ... 1045
1046 1047 1048 1049 1050 1051 1052 1053 1054
0 1046 1047 1048 1049 1050 1051 1052 1053 1054
[1 rows x 1055 columns]
(1, 1055)
(4, 1055)
ValueError: Plan shapes are not aligned
这是一种方法。根据您的数据,这可能会混合类型(例如,如果一列是时间戳)。此外,这会以兆为单位重置您的索引。
mega = pd.DataFrame(np.random.randn(3,3), columns=list('ABC'))
indexRow = pd.DataFrame({col: [n] for n, col in enumerate(mega)})
>>> pd.concat([indexRow, mega], ignore_index=True)
A B C
0 0.000000 1.000000 2.000000
1 0.413145 -1.475655 0.529429
2 0.416250 -0.055519 1.611539
3 0.154045 -0.038109 1.020616