【发布时间】:2015-01-20 17:05:34
【问题描述】:
在 Pandas Dataframe 中,如果 df['field1'] 是字段 df2['field2'] 的成员,那么我需要用指定的值覆盖第三个字段 df[field3] 的值。
我尝试在 sqlite3 中使用 CASE:
conn=sqlite3.connect(':memory:')
sql.write_frame(equip,name='equip',con=conn)
sql.write_frame(list1,name='list1',con=conn)
list2=sql.read_frame("SELECT CASE WHEN (a.'Invoice Number' IN (SELECT b.'Sold On Invoice Number' FROM equip b) THEN a.'Type'='blah' FROM list1 as a END",conn)
以下是带有示例的数据示例:
列表1 出[345]: 发票编号 发票类型 0 1341262 无 1 1037970 无 2 1037941 无 3 1805305 无 4 3302259 无 5 1037388 无
列表2 出[347]: 以发票号出售 0 1341250 1 3302261 2 1341271 3 1037388 4 134127
由于 1037388 在两个列表中,list1['Invoice Type'] 需要等于 'Equipment.'
【问题讨论】:
-
请发布一些您的数据样本,“是会员”是什么意思?
df2['field2']是 Python 集吗? -
我从我的两个数据框中发布了样本。希望它有所帮助。我不知道如何更清楚地发布它们。
标签: python if-statement pandas sqlite case-when