首页 > 解决方案 > 在python中解析CSV的特定列

问题描述

所以我有这个 CSV,我想做以下事情:

原始数据:

在此处输入图像描述

解析数据:

在此处输入图像描述

因此,换句话说,如果一列有逗号,那么我想创建一个只有一个值的新列,并删除具有多个值的列。

例如:N2 有 I1、I3 和 I4。因此,新数据获得 3 列,仅包含一个值。

我想让它动态化,以反映所有排列。就像 N3 有 2 个地方和 2 个项目一样。

我正在尝试使用 python 的 pandas 来做到这一点。一些帮助将不胜感激。

标签: pythonpandascsv

解决方案


这是另一种选择:

df['Place'] = df['Place'].str.split(',')
df['Item'] = df['Item'].str.split(',')

exploded = pd.DataFrame([
    a + [p, t] for *a, P, T in df.values
    for p in P for t in T
], columns=df.columns)

和输出:

  Name Place Item
0   N1    P1   I1
1   N2    P2   I1
2   N2    P2   I3
3   N2    P2   I4
4   N3    P2   I2
5   N3    P2   I5
6   N3    P3   I2
7   N3    P3   I5

推荐阅读