我一直以df1 = [{"Customer Number": "AFIMBN01000BCA17030001177", "Account Name": "Sunarto","Debit/Credit Indicator" : "k","Money" : 200},
{"Customer Number": "AFIMBN01000BCA17030001177", "Account Name": "Sunarto","Debit/Credit Indicator": "k","Money" : 200},
{"Customer Number": "AFIMBN01000BCA17030001177", "Account Name": "Sunarto","Debit/Credit Indicator" : "D", "Money" : 0}]
df1 = pd.DataFrame(df1)
df1.loc[df1["Money"] != 0, "Per item"] = df1["Money"].map(df1["Money"].value_counts())
print (df1)
Account Name Customer Number Debit/Credit Indicator Money \
0 Sunarto AFIMBN01000BCA17030001177 k 200
1 Sunarto AFIMBN01000BCA17030001177 k 200
2 Sunarto AFIMBN01000BCA17030001177 D 0
Per item
0 2.0
1 2.0
2 NaN
gdf = pd.pivot_table(df1, index = ["Account Name","Customer Number"],values = ["Money", "Per item"],aggfunc = np.sum)
print (gdf)
Money Per item
Account Name Customer Number
Sunarto AFIMBN01000BCA17030001177 400 4.0
作为客户端,除hiredis
之外的其他所有东西,例如set
,publish
等都可以正常工作。我可以订阅,但是在尝试发布到已订阅的频道时无法收到任何消息。这是我正在使用的代码:
subscribe
和on message函数:
int main() {
signal(SIGPIPE, sigHandler);
struct event_base *base = event_base_new();
assert(base != nullptr);
auto redis = redisAsyncConnect(IP, PORT);
if (redis != nullptr && redis->err) {
std::cerr << redis->err;
delete redis;
exit(1);
}
std::cout << "Connected" << END;
int flag;
std::cout << "Calling redisLibeventAttach" << END;
redisLibeventAttach(redis, base);
flag = redisAsyncCommand(redis, onMessage, (char *) "sub", "SUBSCRIBE test");
std::cout << "Command ret: " << flag << END;
flag = event_base_dispatch(base);
std::cout << " Event base flag " << flag << END;
return 0;
}
还有什么我应该做的吗?