Python 3.x Dataframe:创建一个新列,并基于两个不同的列在匹配行中插入一个值
我有一个pandas数据帧(比如user_df),有3列{“user_ID”、“transaction_ID”、“location”}。我想创建一个新列“Amount”,并在与“User_ID”和“location”列匹配的行中输入一个值。我该怎么做Python 3.x Dataframe:创建一个新列,并基于两个不同的列在匹配行中插入一个值,python-3.x,pandas,Python 3.x,Pandas,我有一个pandas数据帧(比如user_df),有3列{“user_ID”、“transaction_ID”、“location”}。我想创建一个新列“Amount”,并在与“User_ID”和“location”列匹配的行中输入一个值。我该怎么做 User_id transaction_id location 0 User1 X1 0 1 User2 X1 0 2 User3
User_id transaction_id location
0 User1 X1 0
1 User2 X1 0
2 User3 X1 2
3 User4 X2 1
4 User5 X2 2
5 User6 X2 1
6 User7 X3 2
7 User8 X3 2
可能您可以尝试将
.loc
与&
一起用于两列,如下所示:
user_df.loc[(user_df['User_id']== 'User1') & (user_df['location']==0), 'Amount'] = 100
创建一列“金额”
user_df['Amount']=0
user\u-df[(user\u-df['user\u-id]='xxxx')和(user\u-df['transaction\u-id']='yyyy')]['amount']='amount\u-value'
对于包含User1
和位置为“0”的列,您将有指定的\u-amount
,对于其他单元格,您将有0
df['Amount'] = np.where((user_df['User_id']== 'User1') & (user_df['location']==0), specified_amount, 0)
我已经添加了示例数据。但是我不明白我们为什么要在这里用一个小组?我想知道我们是否可以使用iloc或其他东西,但两次。。。每列一次:用户id和位置?基本上,我想在这个数据框中插入user_id=xxxx和location=yyyyy,这可能是我误解的,但我仍然不确定“Amount”值应该是多少。例如,您希望在第一行中显示什么,或者这是来自其他数据帧吗?您是否尝试使用
loc
?类似于user_-df.loc[(user_-df['user_-id']='User1')&(user_-df['location']==0),'Amount']=100
我尝试了这个方法,得到了以下错误:只能比较相同标签的系列对象我不确定出了什么问题,对样品有用吗?谢谢。你能看看我的另一个问题吗: