用 python 分隔多个子列中的标签值

separate values of labels in multiple sub columns with python

我有一个类似波纹管的 CSV 数据集

f1       f2       f3   ...   label1    label2   
float   float    float ...   00010     00001
...                          01000     00010


每个标签列都是二进制格式。我想在保留标题的情况下将一列更改为多列。每个零和一个应该分开并放在单独的列中,如下所示

f1       f2       f3   ...   label1        label2   
float   float    float ...   0,0,0,1,0     0,0,0,0,1
...                          0,1,0,0,0     0,0,0,1,0

你能指导我如何在 Python 中做到这一点吗? 谢谢。

您可以像这样使用 pandas dataframe 非常有效地做到这一点: (注意:还有其他方法,例如读取 csv 并编辑每一行)。

import pandas as pd

# some test data using strings for their binary equivalents.
example_data = {'f':['a', 'b', 'c'], 'binary_data':['111','101','001']}

df = pd.DataFrame(example_data)

print(df)

def split_parts(row):
    return [x for x in row['binary_data']]


df['split_data']=df.apply(split_parts, axis=1)

print(df)
print(type(df['split_data']))

这是“示例”输入:

   f  binarydata
0  a         111
1  b         101
2  c         100

这是结果:

   f binary_data split_data
0  a         111  [1, 1, 1]
1  b         101  [1, 0, 1]
2  c         001  [0, 0, 1]

上面的 split_data 列是一个字符串列表,每个值代表二进制数据的每个部分。