我有以下包含字符串值的数组:
type(array)
pandas.core.indexes.base.Index
print(array)
Index(['hooiland_1_1', 'hooiland_1_2', 'hooiland_1_3', 'hooiland_1_4',
'roggeteelt_1_1', 'roggeteelt_1_2', 'roggeteelt_1_3', 'roggeteelt_1_4',
'zwartebraak_1_1', 'zwartebraak_1_2', 'zwartebraak_1_3',
'zwartebraak_1_4', 'hooiland_2_1', 'hooiland_2_2', 'hooiland_2_3',
'hooiland_2_4', 'roggeteelt_2_1', 'roggeteelt_2_2', 'roggeteelt_2_3',
'roggeteelt_2_4', 'zwartebraak_2_1', 'zwartebraak_2_2',
'zwartebraak_2_3', 'zwartebraak_2_4'],
dtype='object')
我想将此数组的每个字符串值用作一个空的熊猫数据框中的单独的列名。
尝试:
pd.DataFrame(columns=["class",array]) ###first column is "class"
gives error: Invalid syntax
也尝试拆分数组,但没有成功:
array.split()
gives error :AttributeError: 'Index' object has no attribute 'split'
有一种简单的方法吗?
预期输出: 数据框:
class hooiland_1_1 hooiland_1_2 hooiland_1_3 .... zwartebraak_2_4
class1 value value value value
class2
class3
稍后在过程中添加值,但首先需要使用正确的列名构造空数据框。
答案 0 :(得分:1)
pd.DataFrame(columns=["class"] + array.tolist())
答案 1 :(得分:1)
您需要Index.insert
idx_arr = idx_arr.insert(0, 'class')
Out[444]:
Index(['class', 'hooiland_1_1', 'hooiland_1_2', 'hooiland_1_3', 'hooiland_1_4',
'roggeteelt_1_1', 'roggeteelt_1_2', 'roggeteelt_1_3', 'roggeteelt_1_4',
'zwartebraak_1_1', 'zwartebraak_1_2', 'zwartebraak_1_3',
'zwartebraak_1_4', 'hooiland_2_1', 'hooiland_2_2', 'hooiland_2_3',
'hooiland_2_4', 'roggeteelt_2_1', 'roggeteelt_2_2', 'roggeteelt_2_3',
'roggeteelt_2_4', 'zwartebraak_2_1', 'zwartebraak_2_2',
'zwartebraak_2_3', 'zwartebraak_2_4'],
dtype='object')
pd.DataFrame(columns=idx_arr)
Out[447]:
Empty DataFrame
Columns: [class, hooiland_1_1, hooiland_1_2, hooiland_1_3, hooiland_1_4, roggete
elt_1_1, roggeteelt_1_2, roggeteelt_1_3, roggeteelt_1_4, zwartebraak_1_1, zwarte
braak_1_2, zwartebraak_1_3, zwartebraak_1_4, hooiland_2_1, hooiland_2_2, hooilan
d_2_3, hooiland_2_4, roggeteelt_2_1, roggeteelt_2_2, roggeteelt_2_3, roggeteelt_
2_4, zwartebraak_2_1, zwartebraak_2_2, zwartebraak_2_3, zwartebraak_2_4]
Index: []
答案 2 :(得分:1)
您的代码pd.DataFrame(columns=["class",array])
不会生成列表,因此语法无效。
如果您要在索引的开头添加“类”,则可以尝试:
pd.DataFrame(columns=array.insert(0, 'class')) # adding 'class' to the beginning of the index
您可能要避免使用array
作为变量名...