我正在将一些旧代码从SQLite
移到我的网站,以便通过网站访问。我经常使用的一个查询是INSERT or REPLACE INTO
查询,它检查表中是否存在一行(基于第一个值),如果确实存在,则它将替换该行中的数据VALUES
中指定的行。但是如果找不到该行,它将INSERT
行放入表中。
查询示例(已减少):
INSERT or REPLACE INTO player_currency (player_id, gold) VALUES (1, 500)
这会找到ID为1的玩家并将他的金币设置为500,无论他之前是否在桌子上。
我不确定它是否重要,但我正在使用XAMMP 5.6.8(我已经在标签中添加了PHP,考虑到用于连接数据库的内容,如果它没有,请随意将其删除属于)
答案 0 :(得分:2)
import pandas as pd
df = pd.DataFrame({'a' : [1,1,1,1,1,2,1,2,2,2,2]})
df['b'] = np.where(df.a == 1, 'A', 'B')
print(df)
Out[60]:
a b
0 1 A
1 1 A
2 1 A
3 1 A
4 1 A
5 2 B
6 1 A
7 2 B
8 2 B
9 2 B
10 2 B
def get_mode_from_Series(series):
return series.value_counts().index[0]
def my_rolling_apply_char(frame, window, func):
index = frame.index[window-1:]
values = [func(frame.iloc[i:i+window]) for i in range(len(frame)-window+1)]
return pd.Series(data=values, index=index).reindex(frame.index)
my_rolling_apply_char(df.b, 3, get_mode_from_Series)
Out[61]:
0 NaN
1 NaN
2 A
3 A
4 A
5 A
6 A
7 B
8 B
9 B
10 B
dtype: object
请记住将id作为主键。
答案 1 :(得分:0)
假设player_id是主键,您可以这样做:
INSERT INTO player_currency (player_id, gold) VALUES (1,500) ON DUPLICATE KEY UPDATE gold=500;