我需要帮助来制作下面的代码片段。我需要合并两个文件并在匹配的行上执行计算
我有oldFile.txt其中包含旧数据和newFile.txt包含更新的数据集。
我需要根据newFile.txt中的数据更新oldFile.txt并计算百分比变化。任何想法都会非常有帮助。提前致谢
from collections import defaultdict
num = 0
data=defaultdict(int)
with open("newFile.txt", encoding='utf8', errors='ignore') as f:
for line in f:
grp, pname, cnt, cat = line.split(maxsplit=3)
data[(pname.strip(),cat.replace('\n','').strip(),grp,cat)]+=int(cnt)
sorteddata = sorted([[k[0],v,k[1],k[2]] for k,v in data.items()], key=lambda x:x[1], reverse=True)
for subl in sorteddata[:10]:
num += 1
line = " ".join(map(str, subl))
print ("{:>5} -> {:>}".format(str(num), line))
with open("oldFile.txt", 'a', encoding='utf8', errors='ignore') as l:
l.write(" ".join(map(str, subl)) + '\n')
Run Code Online (Sandbox Code Playgroud)
旧文件.txt
#col1 #col2 #col3 #col4 …Run Code Online (Sandbox Code Playgroud) 我有以下工作代码。我需要添加一个百分比列来监控变化。我不太了解如何在 pandas 中做到这一点。我需要了解哪些部分需要修改。
import pandas as pd
dl = []
with open('sampledata.txt') as f:
for line in f:
parts = line.split()
# Cleaning data here.. Conversions to int/float etc,
if not parts[3][:2].startswith('($'):
parts.insert(3,'0')
if len(parts) > 5:
temp = ' '.join(parts[4:])
parts = parts[:4] + [temp]
parts[1] = int(parts[1])
parts[2] = float(parts[2].replace(',', ''))
parts[3] = float(parts[3].strip('($)'))
dl.append(parts)
headers = ['col1', 'col2', 'col3', 'col4', 'col5']
df = pd.DataFrame(dl,columns=headers)
df = df.groupby(['col1','col5']).sum().reset_index()
df = df.sort_values('col2',ascending=False)
df['col4'] = '($' + df['col4'].astype(str) + ')' …Run Code Online (Sandbox Code Playgroud) 经过几个小时的搜索,我设法运行了这段代码,但不幸的是,这并没有产生我想要的输出,即获取(TOKEN/BNB LP)中的 LP 池地址。
给定令牌地址:0xe56842ed550ff2794f010738554db45e60730371
我想获取 BIN/BNB 池地址:0xe432afB7283A08Be24E9038C30CA6336A7cC8218。
有什么想法可能是什么问题吗?
from web3 import Web3
from eth_abi.packed import encode_abi_packed
from eth_abi import encode_abi
import eth_abi
"""
Contract: 0xe56842ed550ff2794f010738554db45e60730371
BIN/BNB Address: 0xe432afB7283A08Be24E9038C30CA6336A7cC8218
BIN/BNB LP URL: https://bscscan.com/token/0xe432afB7283A08Be24E9038C30CA6336A7cC8218#balances
"""
CONTRACTS = {"CONTRACT": "0xe56842ed550ff2794f010738554db45e60730371",}
PANCAKE_SWAP_FACTORY = "0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73"
PANCAKE_SWAP_ROUTER = "0x10ED43C718714eb63d5aA57B78B54704E256024E"
WBNB_ADDRESS = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
hexadem_= '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'
factory = PANCAKE_SWAP_FACTORY
abiEncoded_1 = encode_abi_packed(['address', 'address'], (CONTRACTS['CONTRACT'], WBNB_ADDRESS))
salt_ = Web3.solidityKeccak(['bytes'], ['0x' +abiEncoded_1.hex()])
abiEncoded_2 = encode_abi_packed([ 'address', 'bytes32'], ( factory, salt_))
resPair = Web3.solidityKeccak(['bytes','bytes'], ['0xff' + abiEncoded_2.hex(), …Run Code Online (Sandbox Code Playgroud) 我想从文本文件生成所有可能的单词,但我的代码不正确。
我现有的代码:
file = open('../data.txt')
for line in file.readlines():
line = line.strip()
for line1 in file.readlines():
line1 = line1.strip()
print ("{} {}".format(line, line1))
Run Code Online (Sandbox Code Playgroud)
data.txt #-- 我的文本格式的数据文件
hero
muffin
ego
abundant
reply
forward
furnish
Run Code Online (Sandbox Code Playgroud)
需要的输出:#--生成的结果
hero muffin
hero ego
hero abundant
hero reply
hero forward
hero furnish
muffin hero
muffin ego
muffin abundant
muffin reply
muffin forward
muffine furnish
ego hero
ego muffin
so on...
Run Code Online (Sandbox Code Playgroud) python ×4
python-3.x ×2
dataframe ×1
dictionary ×1
pandas ×1
solidity ×1
sorting ×1
text ×1
web3py ×1