我正在使用下面的代码提取 pandas 数据框列名称的最后一个数字。
names = df.columns.values
new_df = pd.DataFrame()
for name in names:
if ('.value.' in name) and df[name][0]:
last_number = int(name[-1])
print(last_number)
key, value = my_dict[last_number]
try:
new_df[value][0] = list(new_df[value][0]) + [key]
except:
new_df[value] = [key]
name
是一个字符串,如下所示:
'data.answers.1234567890.value.0987654321'
我想在 .value.
之后获取整个数字,就像在 IF
语句中一样。如何在上面的 IF
语句中执行此操作?
最佳答案
使用 str.split
,并使用 -1
提取最后一个切片(也优雅地处理错误情况):
df = pd.DataFrame(columns=[
'data.answers.1234567890.value.0987654321', 'blahblah.value.12345', 'foo'])
df.columns = df.columns.str.split('value.').str[-1]
df.columns
# Index(['0987654321', '12345', 'foo'], dtype='object')
另一种选择是在 listcomp 内拆分:
df.columns = [x.split('value.')[-1] for x in df.columns]
df.columns
# Index(['0987654321', '12345', 'foo'], dtype='object')
关于python - 如何在数据框列中的特定字符之后提取整个字符串部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084166/