futui 发表于 2023-4-25 13:54:33

数据帧一列分成三列,求大师帮忙,谢谢

import pandas as pd

data = [["2345", "A", "2022-12-20", "2.1016", "-0.72,2.8, -0.77"],
      ["004243", "C", "2022-12-15", "2.0891", ", 45,-0.77"],
      ["519212", "B", "2022-12-10", "333", "1.9733, -0.77, -3.29"],
      ["162411", "E", "2022-12-9", "0.7071", "-1.64,25, -1.46"],
      ["007844", "FC", "2022-11-19", "0.6967", '8, 88,-1.46'],
      ["163208", "G", "2022-11-10", "1.0440", "-0.40, ,-0.40"]]
columns = ["编号", "名称", "日期", "AA", "BCD"]
df = pd.DataFrame(data, columns=columns)

print(df)

想把BCD列,根据逗号分成三列,即增加B,C,D列,求大虾帮忙,谢谢

isdkz 发表于 2023-4-25 13:57:13

您好!您可以使用pandas的`str.split()`方法将BCD列根据逗号分成三列。下面是一个示例:

import pandas as pd

data = [["2345", "A", "2022-12-20", "2.1016", "-0.72,2.8, -0.77"],
      ["004243", "C", "2022-12-15", "2.0891", ", 45,-0.77"],
      ["519212", "B", "2022-12-10", "333", "1.9733, -0.77, -3.29"],
      ["162411", "E", "2022-12-9", "0.7071", "-1.64,25, -1.46"],
      ["007844", "FC", "2022-11-19", "0.6967", '8, 88,-1.46'],
      ["163208", "G", "2022-11-10", "1.0440", "-0.40, ,-0.40"]]
columns = ["编号", "名称", "日期", "AA", "BCD"]
df = pd.DataFrame(data, columns=columns)

# 将BCD列根据逗号分割成三列,并赋予新的列名B, C, D
df[['B', 'C', 'D']] = df['BCD'].str.split(',', expand=True)

# 删除原始的BCD列
df = df.drop(columns=['BCD'])

print(df)


输出的DataFrame将会如下所示:

       编号名称          日期      AA       B      C      D
0    2345   A2022-12-202.1016-0.72    2.8-0.77
1004243   C2022-12-152.0891          45-0.77
2519212   B2022-12-10    3331.9733-0.77-3.29
3162411   E2022-12-9   0.7071-1.64   25-1.46
4007844FC2022-11-190.6967      8   88-1.46
5163208   G2022-11-101.0440-0.40          -0.40


现在,BCD列已经被分成了B、C和D三列。
页: [1]
查看完整版本: 数据帧一列分成三列,求大师帮忙,谢谢