如何从数组中选择分隔的字符串值,并将它们用作数据帧Python中的列名?

2024-10-02 08:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下包含字符串值的数组:

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

稍后我会在进程中添加这些值,但首先需要用正确的列名构造空数据帧


Tags: 数据字符串indexobjectvaluetypeerror数组
3条回答
pd.DataFrame(columns=["class"] + array.tolist())

你需要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: []

您的代码pd.DataFrame(columns=["class",array])没有生成列表,因此语法无效

如果要将“class”添加到索引的开头,可以尝试:

pd.DataFrame(columns=array.insert(0, 'class'))  # adding 'class' to the beginning of the index

顺便说一句,您可能希望避免使用array作为变量名

相关问题 更多 >

    热门问题