Python 如何在pandas中将拆分字符串应用于excel的整个数据集
我有一个巨大的数据集,我想应用这个Python 如何在pandas中将拆分字符串应用于excel的整个数据集,python,pandas,Python,Pandas,我有一个巨大的数据集,我想应用这个 getNumber = df['Permissions','Per'].str.split('-').str[1]` 在整个数据集上,而不仅仅是在“权限”列上,我是否可以在整个数据集上应用它,而不是在每一列上指定它。我被困在如何将此操作应用于整个数据集的问题上,希望得到任何帮助 针对蒂姆的评论 我的数据集是这样的 excel工作表中的数据集:- 我想提取每列中的数字,以便新数据集只包含数字。您可以使用它将函数应用于数据框中的每个单元格: def split
getNumber = df['Permissions','Per'].str.split('-').str[1]`
在整个数据集上,而不仅仅是在“权限”列上,我是否可以在整个数据集上应用它,而不是在每一列上指定它。我被困在如何将此操作应用于整个数据集的问题上,希望得到任何帮助
针对蒂姆的评论
我的数据集是这样的
excel工作表中的数据集:-
我想提取每列中的数字,以便新数据集只包含数字。您可以使用它将函数应用于数据框中的每个单元格:
def splitVal(item):
item = str(item).strip() # converts to string and removes extra whitespace
arr = item.split('-'); # splits string into array
if item and len(arr) > 1: # if item is not empty and > 1 elements in the array
return item.split('-')[1]
return item # otherwise return whatever was there
getNumber = df.applymap(splitVal)
您可以使用:
正如注释中所说,您还可以转换为float。只需添加
.astype(float)
:
您实际想要的输出是什么?计划是使用一个新的或相同的excel表格,只需要数字而不是字符串。嗨,我尝试将此应用于我的代码,它说,AttributeError:只能使用带字符串值的.str访问器@A'sriidri在之前尝试做
df=df.astype(str)
#setup
df = pd.DataFrame({'col1': ['aaa-0.1', 'bbb-1.2'], 'col2': ['zzzz-0.8', 'abc-9.1']})
# col1 col2
#0 aaa-0.1 zzzz-0.8
#1 bbb-1.2 abc-9.1
df.apply(lambda x: x.str.split('-').str[1])
# col1 col2
#0 0.1 0.8
#1 1.2 9.1
df.apply(lambda x: x.str.split('-').str[1]).astype(float)