本代码需求实现:需要不同文件中链接的不同组合,每个文件链接要100个(新生成的每个文件中,链接不能有重复),只取第一列和链接列,再进行标题以及第一列信息的修改。
import pandas
## 第一步 定义所有文件名
files = {
"zz": "【政治】.xlsx",
"yy": "【英语】.xlsx",
"sx": "【数学】.xlsx",
"gz": "【管综】.xlsx",
"xz": "【西综】.xlsx",
}
## 第二步 定义所有组合
group = {
"政英": ["zz", "yy"],
"政数": ["zz", "sx"],
"数英": ["sx", "yy"],
"英管": ["yy", "gz"],
"英西": ["yy", "xz"],
"政西": ["zz", "xz"],
"政英西": ["zz", "yy","xz"],
"政英数": ["zz", "sx", "yy"],
}
## 第三步 读取数据
datas = {} # 储存所有数据
for name, path in files.items():
data = pandas.read_excel(path)
data["used"] = 0 # 数据都没被使用过
data.columns = ["time", "code", "link", "used"]
datas[name] = data
## 第四步处理数据
N = 100
for groupname, groupvalue in group.items(): # 一个组合一个组合的处理
groupData = pandas.DataFrame()
groupLink = [""] * N
for i in groupvalue: # 组合中的科目,一个一个的处理。
tmp_data = datas[i] # 取出数据
tmp_link = list(tmp_data[tmp_data["used"] == 0]["link"][0:N]) # 100个链接
used_index = tmp_data[tmp_data["used"] == 0][0:N].index
tmp_data.loc[used_index, "used"] = 1 # 标记index被使用。loc锁定并获取想要数据
for k in range(N):
groupLink[k] = groupLink[k] +" "+ tmp_link[k]
groupLink[k] = groupLink[k].strip()
groupData["我爱"] = ["python"] * N
groupData["链接"] = groupLink
groupData.to_excel(groupname + ".xlsx", index=False)