Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.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 数据帧:根据条件修改完整数据帧中的单个值_Python_Pandas - Fatal编程技术网

Python 数据帧:根据条件修改完整数据帧中的单个值

Python 数据帧:根据条件修改完整数据帧中的单个值,python,pandas,Python,Pandas,我有一个如下所示的数据帧 A B C 0 5 4) 0 3 2) 1 1 9 1 2 0,10 3) 9 0,22 3) 3 0.5 10 0.2 4 0,07 2) 2 0,05 3) 现在我想更改包含括号“)”的值,以便只保留第一个数字。像这样: A B C 0 5 0 3 1 1

我有一个如下所示的数据帧

      A        B    C

0     5 4)     0    3 2)
1     1        9    1
2     0,10 3)  9    0,22 3)
3     0.5      10   0.2
4     0,07 2)  2    0,05 3)
现在我想更改包含括号“)”的值,以便只保留第一个数字。像这样:

      A        B    C

0     5        0    3 
1     1        9    1
2     0,10     9    0,22 
3     0.5      10   0.2
4     0,07     2    0,05 
我用下面的代码进行了尝试,成功了

for i in df["A"]:
    if ")" in str(i):
        new, filler = str(i).split(" ",1)
        df.replace(i, new,inplace=True)
由于数据量很大,我需要在整个数据帧上执行此操作,而不仅仅是在列“A”上。最好的方法是什么?
谢谢

一种方法是在空格上拆分并保留结果列表的第一个元素:

cols = ['A', 'C']
df[cols] = df[cols].apply(lambda x: x.str.split(' ').str[0])


一种方法是在空格上拆分,并保留结果列表的第一个元素:

cols = ['A', 'C']
df[cols] = df[cols].apply(lambda x: x.str.split(' ').str[0])


您可以用于idx,df.iteritems()中的值:然后应用转换信息无效您可以用于idx,df.iteritems()中的值:然后应用转换信息无效谢谢您的回答。不幸的是,如果我使用您的代码,我会为所有不包含“)”的值得到一个“NaN”。像这样:A[5,NaN,0.10,NaN,0.07]好吧,我的错。我在几个单元格中输入了错误的类型(float而不是str)。通过此更改,它成功了:df2[cols]=df2[cols].apply(lambda x:x.astype(str).str.split(“”).str[0])-谢谢!谢谢你的回答。不幸的是,如果我使用您的代码,我会为所有不包含“)”的值得到一个“NaN”。像这样:A[5,NaN,0.10,NaN,0.07]好吧,我的错。我在几个单元格中输入了错误的类型(float而不是str)。通过此更改,它成功了:df2[cols]=df2[cols].apply(lambda x:x.astype(str).str.split(“”).str[0])-谢谢!