Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 将所有行的新列中的特定字符串替换为数值

Python 将所有行的新列中的特定字符串替换为数值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个数据框,其中有一列消息,我想创建一列媒体,这样,如果对于索引x,df.ix[x][message]==”,那么我想df.ix[x][media]=1 例如,对于数据帧: index message 1 hello 2 <Media omitted> 3 hello 4 <Media omitted> 索引消息 你好 2. 3你好 4. 我会得到: index message

我有一个数据框,其中有一列
消息
,我想创建一列
媒体
,这样,如果对于索引x,
df.ix[x][message]==”
,那么我想
df.ix[x][media]=1

例如,对于数据帧:

index    message
1        hello
2        <Media omitted>
3        hello
4        <Media omitted>
索引消息
你好
2.
3你好
4.
我会得到:

index    message          media
1        hello             0
2        <Media omitted>   1
3        hello             0
4        <Media omitted>   1
索引消息媒体
1你好0
2           1
3你好0
4           1
我尝试仅通过使用循环来实现这一点,但我相信有一种更智能、更快的方法。

试试这个:

df['media'] = (df['message'] == '<Media omitted>').astype(int)
df['media']=(df['message']='').astype(int)
解释

  • df['message']=''
    创建一个布尔序列
  • astype(int)
    出于显示目的,将布尔序列强制转换为整数类型
试试这个:

df['media'] = (df['message'] == '<Media omitted>').astype(int)
df['media']=(df['message']='').astype(int)
解释

  • df['message']=''
    创建一个布尔序列
  • astype(int)
    出于显示目的,将布尔序列强制转换为整数类型

我认为您需要通过以下方式将布尔掩码转换为
int

df['media']=(df['message']='').astype(int)
#非常相似的替代方案
#df['media']=df['message'].eq('').astype(int)
打印(df)
信息媒体
指数
1你好0
2            1
3你好0
4            1

我认为您需要通过以下方式将布尔掩码转换为
int

df['media']=(df['message']='').astype(int)
#非常相似的替代方案
#df['media']=df['message'].eq('').astype(int)
打印(df)
信息媒体
指数
1你好0
2            1
3你好0
4            1

如果我想对两个不同的字符串值使用相同的值?像是
'
这个字符串也是
?我尝试使用or运算符,但不起作用。请尝试使用
isin
df['media']=(df['message'].isin({'','thistringtoo'})。astype(int)
如果我想对两个不同的字符串值使用相同的值,比如
'
thisstringtoo
?我尝试使用or运算符,但没有效果。尝试使用
isin
df['media']=(df['message'].isin({'','thisstringtoo')。astype(int)