【问题标题】:I want to add new column on the basis of another column data in pandas我想根据熊猫中的另一列数据添加新列
【发布时间】:2019-12-27 10:39:41
【问题描述】:

我有多个 csv 文件,之后我将它们合并在一起,以便在所有合并的 csv 文件中识别单个 csv 数据,我希望在 pandas 中创建一个新列,其中新列应称为串行。

我想要熊猫中的一个新列序列,它应该根据序列列中的数据编号(例如 111111111,2222222222,33333333 用于 csv 中的每个新列)。我还附上了 csv 文件的快照.

Sequence Number
1
2
3
4
5
1
2
1
2
3
4

我想要这样的输出-

Serial  Sequence Number
1   1
1   2
1   3
1   4
1   5
2   1
2   2
3   1
3   2
3   3
3   4

【问题讨论】:

  • 您是如何合并来自不同 csv 文件的数据的?您可以使用文件名作为标识符。将读取函数的结果放在字典中,文件名作为键,数据帧作为值。然后df = pandas.concat(dict_of_df, sort=True) 会给你一个带有索引文件名的数据框。

标签: python excel pandas csv append


【解决方案1】:

将DataFrame.insert 用于填充布尔掩码的第一个位置的列,以便通过1 与Series.eq (==) 进行比较,并通过Series.cumsum 进行累积总和:

df.insert(0, 'Serial', df['Sequence Number'].eq(1).cumsum())
print (df)
    Serial  Sequence Number
0        1                1
1        1                2
2        1                3
3        1                4
4        1                5
5        2                1
6        2                2
7        3                1
8        3                2
9        3                3
10       3                4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多