Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pandas中将拆分字符串应用于excel的整个数据集_Python_Pandas - Fatal编程技术网

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)