如果行中包含特定字符串,大熊猫有没有办法在新列中创建整数

时间:2019-11-25 19:17:45

标签: python pandas dataframe

例如,我有以下数据框:

Initial DataFrame

我想将数据框从上方转换为类似这样的内容:

enter image description here

感谢您的任何帮助!

3 个答案:

答案 0 :(得分:2)

运行:

df['Number'] = df.svn_changes.str.match(r'r\d+').cumsum()

答案 1 :(得分:1)

是的,是contains和正则表达式和cumsum

df = pd.DataFrame({'svn_changes':['r123456','RowValueRow','ValueRowValue',
                                  'some_string_string','r234566','ValueRowValue',
                                  'some_string_string','r123789','something_here',
                                  'ValueRowValue','String_2','String_4']})

df['Number'] = df['svn_changes'].str.contains('r\d+').cumsum()
print(df)

输出:

           svn_changes  Number
0              r123456       1
1          RowValueRow       1
2        ValueRowValue       1
3   some_string_string       1
4              r234566       2
5        ValueRowValue       2
6   some_string_string       2
7              r123789       3
8       something_here       3
9        ValueRowValue       3
10            String_2       3
11            String_4       3

答案 2 :(得分:0)

这是一条简单的可重复使用的行,您可以用来执行此操作:

df['new_col'] = df['old_col'].str.contains('string_to_match')*1

如果该列中存在字符串,则新列的值将为1,否则为0