Pandas DataFrame对比time索引与spending_time列 替换sender列Unknown值
解决方法
实现逻辑
先构造spending_time到对应recipient的映射字典,再逐行匹配time值替换sender列的Unknown字段即可。
代码实现
import pandas as pd # 读取CSV数据 df = pd.read_csv("your_file_path.csv") # 构建spending_time到recipient的映射表 spend_time_recipient_map = df.set_index("spending_time")["recipient"].to_dict() # 替换sender列的Unknown值 df["sender"] = df.apply( lambda row: spend_time_recipient_map.get(row["time"], row["sender"]) if row["sender"] == "Unknown" else row["sender"], axis=1 ) # 导出结果到csv可选 print(df.to_csv(index=False))
处理后结果
time,transaction_hash,index,value,recipient,spending_time,sender 2009-01-09 03:54:39,a0241106ee5a597c9,0,50.0,Paul,2009-01-12 03:30:25,Coinbase 2009-01-12 03:30:25,1338530e9831e9e16,1,40.0,Me,2009-01-12 06:02:13,Paul 2009-01-12 06:02:13,546c4fb42b41e14be,1,30.0,John,2009-01-12 06:12:16,Me 2009-01-12 06:02:14,eaf0775ebca408f7r,1,17.0,Paul,2010-09-22 06:06:02,Unknown 2009-01-12 06:02:15,732a865bf5414eab2,1,15.0,Paul,2010-02-23 14:01:23,Unknown 2009-01-12 06:12:16,591e911da64588073,1,29.0,John,2009-01-12 06:34:22,John 2009-01-12 06:34:22,12b52732a85c191ba,1,28.0,Sara,2009-01-12 20:04:20,John
内容的提问来源于stack exchange,提问作者sci9
相关产品推荐
相关产品推荐

