amy*_*pon 2 python indexing dataframe pandas
我有一个数据框架,其中索引是名称。但是名字是名字,姓氏*
数据看起来像这样
Index Sales
Jones, Mike* 500
James, Amy 300
Run Code Online (Sandbox Code Playgroud)
目标是拥有(或将索引更改为名称)
Index Sales Special
Mike Jones 500 1
Amy James 300 0
Run Code Online (Sandbox Code Playgroud)
如果存在*,则创建一个新列,如果存在*,则新列为1,否则为0?
假设Index作为索引列:
In [32]: df['Special'] = df.index.str.endswith('*').astype(int)
In [33]: df.set_index(df.index.str.replace(r'^(\w+),\s+(\w+)\*?', '\\2 \\1', regex=True))
Out[33]:
Sales Special
Index
Mike Jones 500 1
Amy James 300 0
Run Code Online (Sandbox Code Playgroud)
细节:
df.index.str.endswith('*').astype(int)-检查index列值是否以结尾,*并将逻辑结果转换为整数值(being 0或1)df.index.str.replace(r'^(\w+),\s+(\w+)\*?', '\\2 \\1', regex=True)-将index列值替换为第一个和第二个正则表达式捕获组的内容,(\w+)将其位置交换为\\2 \\1(第2个后跟第1个)| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |