python pd.merge()合并后的DataFrame无法输出到excel表

代码:
import pandas as pd
from pandas import DataFrame
df3 = DataFrame({'key1': ['one', 'two', 'three', 'two'],
'key2': ['two', 'three', 'one', 'one'],
'data': [1, 2, 3, 4]})
df4 = DataFrame({'key1': ['two', 'two', 'three'],
'key2': ['one', 'two', 'one'],
'data': [1, 2, 3]})
data = pd.merge(df3, df4, on=['key1', 'key2'], how='outer')
print(data)
data.to_excel('D:\01.xls', na_rep=None)

结果:
key1 key2 data_x data_y
0 one two 1.0 NaN
1 two three 2.0 NaN
2 three one 3.0 3.0
3 two one 4.0 1.0
4 two two NaN 2.0
Traceback (most recent call last):
File "D:/python项目/02.py", line 232, in
data.to_excel('D:\01.xls', na_rep=None)
File "F:\python\lib\site-packages\pandas\core\generic.py", line 2256, in to_excel
engine=engine,
File "F:\python\lib\site-packages\pandas\io\formats\excel.py", line 742, in write
writer.save()
File "F:\python\lib\site-packages\pandas\io\excel_xlwt.py", line 32, in save
return self.book.save(self.path)
File "F:\python\lib\site-packages\xlwt\Workbook.py", line 710, in save
doc.save(filename_or_stream, self.get_biff_data())
File "F:\python\lib\site-packages\xlwt\CompoundDoc.py", line 262, in save
f = open(file_name_or_filelike_obj, 'w+b')
OSError: [Errno 22] Invalid argument: 'D:\x01.xls'

为什么会报错呢?两个DataFrame使用merge方法合并后不是变成一个DataFrame了吗,为什么使用to_excel方法会出现错误?

1个回答

不是merge出错,是存入excel时你的参数写错了。OSError: [Errno 22] Invalid argument: 'D:\x01.xls'

把下面这行改成
data.to_excel('D:\01.xls', na_rep=None)

data.to_excel('01.xls', na_rep=None)
或者
.data.to_excel(r'D:\01.xls', na_rep=None)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
DataFrame constructor not properly called!
main() File "F:/05paper/graduation paper/Gmm/expertInstitution.py", line 24, in main scholarInstition() File "F:/05paper/graduation paper/Gmm/expertInstitution.py", line 18, in scholarInstition paperId=paperId.merge(pandas.DataFrame({'Institution'}),right_index=True) File "E:\Anaconda3\lib\site-packages\pandas\core\frame.py", line 302, in __init__ raise PandasError('DataFrame constructor not properly called!') pandas.core.common.PandasError: DataFrame constructor not properly called!
python中使用merge拼接数据之后的数据处理问题?
使用merge拼接数据之后,想继续对生产的数据进行处理,如何去做? 如: ``` import pandas as pd kehus = pd.read_excel(r'd:\test\test002.xlsx') yues = pd.read_excel(r'd:\test\test001.xlsx') table = kehus.merge(yues,how='left',on='ID') #print(table) table.to_excel(r'd:\test\test003.xlsx') ``` 生产报表如图 ![图片说明](https://img-ask.csdn.net/upload/201907/23/1563895815_804607.png) 之后需要计算E列-H列的结果填到I列,该如何写呢?求助各位老师帮忙,多谢!!
hibernate entityManger.merge
代码如下,现在是更新语句已经生成 但是真正去插入数据实在insertTest这个方法执行完之后才去更新(也就是说每次都是循环完3条之后才写入数据库),我想要循环一条然后立刻写入数据库 需要怎么做. public T update(Object entity) { entityManager.merge(entity); return (T) entity; } public void update(TeleInsuranceLog teleLog){ teleLog.setCreatetime(new Date()); baseDao.update(teleLog); } public void insertTest(TeleInsuranceLog teleLog){ for (int i = 0; i <3; i++) { update(teleLog); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
openpyxl复制merged_cells后,合并的单元格只有最左上角有边框,如何修补?
想把一个完整的worksheet复制到新的文件中,但所有合并单元格都只剩下左上角的边框,其它边框丢失了,怎样才能修补回来? 版本python3.8+openpyxl3.0.3 试过论谈里的修改workbook.py或者patch_worksheet()打补丁都无效 ``` def add_sheet_with_format(targetbk, sourcesheet): ws = sourcesheet ws2 = targetbk.create_sheet() max_row=ws.max_row #最大行数 max_column=ws.max_column #最大列数 m_list=ws.merged_cells #合并单元格的位置信息,可迭代对象(单个是一个'openpyxl.worksheet.cell_range.CellRange'对象),print后就是excel坐标信息 mergedcellqty=len(ws.merged_cells.ranges) if mergedcellqty>0 : cr = [] for m_area in m_list: # 合并单元格的起始行坐标、终止行坐标。。。。, r1, r2, c1, c2 = m_area.min_row, m_area.max_row, m_area.min_col, m_area.max_col # 纵向合并单元格的位置信息提取出 if r2 - r1 >= 0: cr.append((r1, r2, c1, c2)) #print('符合条件%s' % str(m_area)) for r in cr: ws2.merge_cells(start_row=r[0], end_row=r[1], start_column=r[2], end_column=r[3]) for m in range(1,max_row + 1): ws2.row_dimensions[m].height = ws.row_dimensions[m].height for n in range(1,1 + max_column): if n<27 : c=chr(n+64).upper() #ASCII字符,chr(65)='A' else: if n < 677 : c=chr(divmod(n,26)[0]+64)+chr(divmod(n,26)[1]+64) else: c=chr(divmod(n,676)[0]+64) + chr(divmod(divmod(n,676)[1],26)[0]+64) + chr(divmod(divmod(n,676)[1],26)[1]+64) i='%s%d'%(c,m) #单元格编号 if m == 1 : ws2.column_dimensions[c].width = ws.column_dimensions[c].width try: cell1=ws[i] #获取data单元格数据 ws2[i].value=cell1.value #赋值到ws2单元格 if cell1.has_style: #拷贝格式 ws2[i].font = copy(cell1.font) ws2[i].border = copy(cell1.border) ws2[i].fill = copy(cell1.fill) ws2[i].number_format = copy(cell1.number_format) ws2[i].protection = copy(cell1.protection) ws2[i].alignment = copy(cell1.alignment) except AttributeError as e: print("cell(%s) is %s" % (i,e)) continue ``` 原文件 ![图片说明](https://img-ask.csdn.net/upload/202002/15/1581775845_2323.jpg) 复制后的文件 ![图片说明](https://img-ask.csdn.net/upload/202002/15/1581776029_891171.jpg)
LeetCode 617. Merge Two Binary Trees 怎么实现调用
求C#大神,LeetCode 617. Merge Two Binary Trees 怎么实现调用的,自己试着写了一下实现不了。 class Program { static void Main(string[] args) { TreeNode tree = new TreeNode(1); Program p = new Program(); tree.val = 1; TreeNode t1; t1.val = 1; TreeNode t2; t2.val = 2; //TreeNode t1 = { 1, 3, 2, 5 }; //TreeNode t2 = new TreeNode{2, 1, 3, null, 4, null, 7}; p.MergeTrees(t1, t2); } public TreeNode MergeTrees(TreeNode t1, TreeNode t2) { if (t1 == null && t2 == null) { return null; } if (t1 != null && t2 == null) { return t1; } if (t1 == null && t2 != null) { return t2; } if (t1 != null && t2 != null) { t1.val += t2.val; t1.left = MergeTrees(t1.left, t2.left); t1.right = MergeTrees(t1.right, t2.right); } return t1; } } public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int x) { val = x; } public int valprop { get { return val;} set { } } }
python报错:KeyError: 'user_id'
#coding:utf-8 import pandas as pd import numpy as np import time import datetime import gc from sklearn.preprocessing import LabelEncoder,OneHotEncoder def pre_process(data): cols = data.columns.tolist() keys = ['instance_id', 'day'] for k in keys: cols.remove(k) return data, cols def dorollWin(data): data['context_timestamp_str'] = data['context_timestamp'].astype(str) user_time_join = data.groupby(test.user_id)['context_timestamp_str'].agg(lambda x:';'.join(x)).reset_index() user_time_join.rename(columns={'context_timestamp_str':'user_time_join'},inplace = True) data = pd.merge(data,user_time_join,on=[test.user_id],how='left') user_shop_time_join = data.groupby([test.user_id,'shop_id'])['context_timestamp_str'].agg(lambda x:';'.join(x)).reset_index() user_shop_time_join.rename(columns={'context_timestamp_str':'user_shop_time_join'},inplace = True) data = pd.merge(data,user_shop_time_join,on=[test.user_id,'shop_id'],how='left') user_item_time_join = data.groupby([test.user_id,'item_id'])['context_timestamp_str'].agg(lambda x:';'.join(x)).reset_index() user_item_time_join.rename(columns={'context_timestamp_str':'user_item_time_join'},inplace = True) data = pd.merge(data,user_item_time_join,on=[test.user_id,'item_id'],how='left') data['index_']=data.index del user_time_join,user_shop_time_join,user_item_time_join nowtime=data.context_timestamp.values user_time=data.user_time_join.values user_shop_time=data.user_shop_time_join.values user_item_time=data.user_item_time_join.values data_len=data.shape[0] user_time_10_bf=np.zeros(data_len) user_time_10_af=np.zeros(data_len) user_shop_time_10_bf=np.zeros(data_len) user_shop_time_10_af=np.zeros(data_len) user_item_time_10_bf=np.zeros(data_len) user_item_time_10_af=np.zeros(data_len) a=time.time() for i in range(data_len): df1=nowtime[i] df2=user_time[i].split(';') df2_len=len(df2) for j in range(df2_len): if ((int(df2[j])-df1)<600) & ((int(df2[j])-df1)>0): user_time_10_bf[i]+=1 if ((int(df2[j])-df1)>-600) & ((int(df2[j])-df1)<0): user_time_10_af[i]+=1 df3=user_shop_time[i].split(';') df3_len=len(df3) for j in range(df3_len): if ((int(df3[j])-df1)<600) & ((int(df3[j])-df1)>0): user_shop_time_10_bf[i]+=1 if ((int(df3[j])-df1)>-600) & ((int(df3[j])-df1)<0): user_shop_time_10_af[i]+=1 df4=user_item_time[i].split(';') df4_len=len(df4) for j in range(df4_len): if ((int(df4[j])-df1)<600) & ((int(df4[j])-df1)>0): user_item_time_10_bf[i]+=1 if ((int(df4[j])-df1)>-600) & ((int(df4[j])-df1)<0): user_item_time_10_af[i]+=1 print(time.time()-a) data['user_count_10_bf']=user_time_10_bf data['user_count_10_af']=user_time_10_af data['user_shop_count_10_bf']=user_shop_time_10_bf data['user_shop_count_10_af']=user_shop_time_10_af data['user_item_count_10_bf']=user_item_time_10_bf data['user_item_count_10_af']=user_item_time_10_af drops = ['context_timestamp_str', 'user_time_join', 'user_shop_time_join', 'user_item_time_join', 'index_'] data = data.drop(drops, axis=1) return data def doSize(data): add = pd.DataFrame(data.groupby(["shop_id", "day"]).item_id.nunique()).reset_index() add.columns = ["shop_id", "day", "shop_item_unique_day"] data = data.merge(add, on=["shop_id", "day"], how="left") user_query_day = data.groupby(['user_id', 'day']).size().reset_index().rename(columns={0: 'user_id_query_day'}) data = pd.merge(data, user_query_day, how='left', on=['user_id', 'day']) data['min_10'] = data['minute'] // 10 data['min_15'] = data['minute'] // 15 data['min_30'] = data['minute'] // 30 data['min_45'] = data['minute'] // 45 # user 不同时间段点击次数 min10_user_click = data.groupby(['user_id', 'day', 'hour', 'min_10']).size().reset_index().rename(columns={0:'min10_user_click'}) min15_user_click = data.groupby(['user_id', 'day', 'hour', 'min_15']).size().reset_index().rename(columns={0:'min15_user_click'}) min30_user_click = data.groupby(['user_id', 'day', 'hour', 'min_30']).size().reset_index().rename(columns={0:'min30_user_click'}) min45_user_click = data.groupby(['user_id', 'day', 'hour', 'min_45']).size().reset_index().rename(columns={0:'min45_user_click'}) data = pd.merge(data, min10_user_click, 'left', on=['user_id', 'day', 'hour', 'min_10']) data = pd.merge(data, min15_user_click, 'left', on=['user_id', 'day', 'hour', 'min_15']) data = pd.merge(data, min30_user_click, 'left', on=['user_id', 'day', 'hour', 'min_30']) data = pd.merge(data, min45_user_click, 'left', on=['user_id', 'day', 'hour', 'min_45']) del data['min_10'] del data['min_15'] del data['min_30'] del data['min_45'] return data def doElse(data): pass def main(): path = 'F:/18ijcaidata/' train = pd.read_csv(path+'train_day7.csv',encoding='utf-8') test = pd.read_csv(path+'test_day7.csv',encoding='utf-8') data = pd.concat([train, test]) print('初始维度:', data.shape) data, cols = pre_process(data) print('pre_process:', data.shape) ################################## data = dorollWin(data) print('dorollWin:', data.shape) data = doSize(data) print('doSize:', data.shape) ################################## data = data.drop(cols, axis=1) # 得到7号训练集 data = data.loc[data.day == 7] data = data.drop('day', axis=1) print('经过处理后,7号数据集最终维度::',data.shape) print(data.columns.tolist()) data.to_csv(path+'103_statistics_feat.csv', index=False) if __name__ == '__main__': #??????????????运行此行,出现key error:'user_id' main() ``` ```
ubuntu下调用keras报错:No module named 'error'
cuda9.0和TensorFlow1.8.0已安装 import tensorflow也没有问题,就是再import keras出错,求大神解答! 报错如下: Using TensorFlow backend. Traceback (most recent call last): File "/home/zhangzhiyang/PycharmProjects/tensorflow1/test_keras.py", line 2, in <module> import keras File "/home/zhangzhiyang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/__init__.py", line 3, in <module> from . import utils File "/home/zhangzhiyang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/utils/__init__.py", line 26, in <module> from .multi_gpu_utils import multi_gpu_model File "/home/zhangzhiyang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/utils/multi_gpu_utils.py", line 7, in <module> from ..layers.merge import concatenate File "/home/zhangzhiyang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/layers/__init__.py", line 4, in <module> from ..engine.base_layer import Layer File "/home/zhangzhiyang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/__init__.py", line 7, in <module> from .network import get_source_inputs File "/home/zhangzhiyang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/network.py", line 9, in <module> import yaml File "/home/zhangzhiyang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/yaml/__init__.py", line 2, in <module> from error import * ModuleNotFoundError: No module named 'error' 我的版本:tensorflow1.8.0,cuda9.0,cuDNN7,anaconda3,python3.6.5 我的tensorflow和keras安装路径均为anaconda3/envs/tensorflow/lib/python3.6/site-packages 我的.bashrc文件如下: export PATH="/home/zhangzhiyang/anaconda3/bin:$PATH" export LD_LIBRARY_PATH="/home/zhangzhiyang/newdisk/cuda-9.0/lib64:$LD_LIBRARY_PATH" export PATH="/home/zhangzhiyang/newdisk/cuda-9.0/bin:$PATH" export CUDA_HOME=$CUDA_HOME:"/home/zhangzhiyang/newdisk/cuda-9.0" 个人推测可能是python版本的问题,但不知如何解决,我第一次pip Keras未指定安装路径,结果keras安装在了python2.7下,这次我指定了路径为python3.6/site_packages,但是报了如上错误,是否keras不支持python3? 求大神解答!
如何使用python方法合并若干分表到一个表上
现有每个月工资发放数据表若干个,基本数据结构都是excel形式(表1:字段名为:序号 姓名 身份证号 1月工资 ,表2:字段名为:序号 姓名 身份证号 2月工资 ,表3:字段名为:序号 姓名 身份证号 3月工资 , 依此类推)。我的目的是进行根据姓名 身份证号进行合并,便于一目了然的查看某人每个月的全部工资发放情况。 我现在使用的方法是运用python pandas 方法,将所有的表中姓名 身份证号 进行纵向合并去重,生成一个新表,再用这个新表分别与表1、表2、表3……等进行merge左合并。这种方法操作起来较复杂,所以有些不喜欢。 请问大家还有更简单的方法吗?欢迎支招。
用python修改已经存在的EXCEL单元格背景颜色
已经有一个表格,需要在单元格里面设置背景颜色。来区分不同的类型 ``` def setcellcolo(x,y): # 设置单元格背景颜色 style = xlwt.XFStyle() pattern = xlwt.Pattern() # 创建一个模式 pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 设置其模式为实型 pattern.pattern_fore_colour =4 # 设置单元格背景颜色 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, the list goes on... style.pattern = pattern # 将赋值好的模式参数导入Style Line_data = (u'测试表') #创建一个Line_data列表,并将其值赋为测试表,以utf-8编码时中文前加u df.merge(x,x,y,y,style) ``` 报错,我是用xlrd读取excel,但是修改颜色的时候确是用xlwt,所以报错 'Book' object has no attribute 'merge'
android failed for task ':app:dexDebug'
我使用SVN更新了项目后出现这个错误,貌似是更新了包,我用的是V7包,别人用的是V4,怎么改可以正常运行呀?最好项目以后更新也不会出现这个问题 Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\Users\Administrator\AppData\Local\Android\sdk\build-tools\21.1.2\dx.bat --dex --no-optimize --output D:\android-studio\exercise\ex05\svn_androidStuido\app\build\intermediates\dex\debug --input-list=D:\android-studio\exercise\ex05\svn_androidStuido\app\build\intermediates\tmp\dex\debug\inputList.txt Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) at com.android.dx.command.dexer.Main.run(Main.java:246) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)
android stuido 求大神指点 Gradle build finished
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/lidroid/xutils/task/TaskHandler; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: D:\Android\android-studio\sdk\build-tools\android-4.4W\dx.bat --dex --num-threads=4 --output E:\一点通\新闻客户端APP\code\android\XMRBApp\app\build\intermediates\dex\debug E:\一点通\新闻客户端APP\code\android\XMRBApp\app\build\intermediates\classes\debug E:\一点通\新闻客户端APP\code\android\XMRBApp\app\build\intermediates\dependency-cache\debug E:\一点通\新闻客户端APP\code\android\XMRBApp\app\build\intermediates\pre-dexed\debug\baseproject-c56c14be9943929c5c5813d4553338c6b5b2977e.jar E:\一点通\新闻客户端APP\code\android\XMRBApp\app\build\intermediates\pre-dexed\debug\classes-1f8f8478b937dc74b01aabab03122fad3284ca52.jar E:\一点通\新闻客户端APP\code\android\XMRBApp\app\build\intermediates\pre-dexed\debug\classes-1ff5837b36cb81358fc0327eb8469bcf0233db7d.jar Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/lidroid/xutils/task/TaskHandler; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED 求大神指点!!!感谢感谢
openpyxl写入excel后打开报错“已删除的记录: /xl/comments/comment1.xml 部分的 批注 (批注)”?
CompareExcel.py代码如下: ``` from openpyxl.styles import Font,Alignment,Side,Border,Color,colors,PatternFill from MMSpackagefile.codefile.ExcelData import ExcelData class CompareExcel(object): def __init__(self): pass def settruecelltype(self, sheet, row, col): cell = sheet.cell(row, col) font = Font(size=12, bold=False, name='Arial', color=colors.BLACK) thin = Side(border_style='thin', color='0000FF') border = Border(left=thin, right=thin, top=thin, bottom=thin) cell.font = font cell.border = border def setfalsecelltype(self, sheet, row, col): cell = sheet.cell(row, col) font = Font(size=12, bold=False, name='Arial', color=colors.RED) fill = PatternFill(start_color=colors.YELLOW, end_color=colors.YELLOW, fill_type='solid') thin = Side(border_style='thin', color='0000FF') border = Border(left=thin, right=thin, top=thin, bottom=thin) cell.fill = fill cell.font = font cell.border = border #expectlist,actlist 分别为预期返回list和实际返回list; #data 为案例sheet页中过滤的案例数据; #fullfield 为所有字段项去重(无论是否都需要比较,即是结果明细sheet页中标题字段)fulladdfield所有添加字段项去重 #categoryfield为从案例中获得的比较字段类; #sheetfield为配置文件excel里,比较字段sheet页里获取的list,其中list1为所有的子字段列表,list2为添加的字段列表,list3为两个dict,key分别为IsCompare和IsAdd def comp(self, expectlist, actlist, data, full, fulladdfield, categoryfield, sheetfield, sheet_result): comparefield = [] #为根据案例中的需比较字段类获得的需比较字段项 addfield = [] #为根据案例中的需比较字段类获得的需比较添加字段项 rownum = sheet_result.max_row fullli = ExcelData().sort_list(full) fullfield = fullli[:-1] if len(fulladdfield) != 0: fullfield = [e for e in fullfield if e not in fulladdfield] for j in categoryfield: for m in sheetfield: if m.get('checkfield') == 'IsCompare': comparefield.extend(list(m.get(j).split(','))) else: if not m.get(j) != m.get(j): addfield.extend(list(m.get(j).split(','))) if len(expectlist) == len(actlist) and len(expectlist) != 0: sumlogicvalue = CompareExcel().setresultsheet(expectlist, actlist, fullfield, fulladdfield, comparefield, addfield, data, sheet_result, rownum) if len(expectlist) != 1: sheet_result.merge_cells(start_row=rownum + 1, start_column=1, end_row=rownum + len(expectlist), end_column=1) # return sumlogicvalue elif len(expectlist) == len(actlist) and len(expectlist) == 0: rowvalue = [] rowvalue.append(data.get('case_id')) sumlogicvalue = False for q in range(2, 2*len(fullfield)+len(fulladdfield)+2): rowvalue.append('') rowvalue.append(sumlogicvalue) sheet_result.append(rowvalue) CompareExcel().settruecelltype(sheet_result, rownum+1, 1) for w in range(2, 2*len(fullfield)+len(fulladdfield)+3): CompareExcel().setfalsecelltype(sheet_result, rownum+1, w) # return sumlogicvalue elif len(expectlist) > len(actlist): commonexpectlist = [] commonactlist = [] surplusexpectlist = [] for i in expectlist: sign = 0 for j in actlist: if i['data']['id'] == j['data']['id']: sign = 1 commonexpectlist.append(i) commonactlist.append(j) if sign == 0: surplusexpectlist.append(i) CompareExcel().setresultsheet(commonexpectlist, commonactlist, fullfield, fulladdfield, comparefield, addfield, data, sheet_result, rownum) si = 'ex' CompareExcel().setsurlistvalue(si, surplusexpectlist, fullfield, fulladdfield, sheet_result, rownum, commonexpectlist) sheet_result.merge_cells(start_row=rownum + 1, start_column=1, end_row=rownum + len(expectlist), end_column=1) sumlogicvalue = False # return sumlogicvalue else: commonexpectlist = [] commonactlist = [] surplusexpectlist = [] for i in actlist: sign = 0 for j in expectlist: if i['data']['id'] == j['data']['id']: sign = 1 commonactlist.append(i) commonexpectlist.append(j) if sign == 0: surplusexpectlist.append(i) CompareExcel().setresultsheet(commonexpectlist, commonactlist, fullfield, fulladdfield, comparefield, addfield, data, sheet_result, rownum) si = 'ac' CompareExcel().setsurlistvalue(si, surplusexpectlist, fullfield, fulladdfield, sheet_result, rownum, commonexpectlist) sheet_result.merge_cells(start_row=rownum + 1, start_column=1, end_row=rownum + len(actlist), end_column=1) sumlogicvalue = False return sumlogicvalue def setresultsheet(self, expectlist, actlist, fullfield, fulladdfield, comparefield, addfield, data, sheet_result, rownum): for i in range(len(expectlist)): rowvalue = [] expectreturn = [] actreturn = [] addreturn = [] logicvalue = True columnnum = [] for j in range(len(fullfield)): if fullfield[j] in comparefield: # if fullfield[j] == 'name': # actlist[i]['data'][fullfield[j]] = '浦发银' if fullfield[j] in list(expectlist[i]['data'].keys()): expectreturn.append(expectlist[i]['data'][fullfield[j]]) else: expectreturn.append('') if fullfield[j] in list(actlist[i]['data'].keys()): actreturn.append(actlist[i]['data'][fullfield[j]]) else: actreturn.append('') if expectlist[i].get('data').get(fullfield[j]) != actlist[i].get('data').get(fullfield[j]): logicvalue = False columnnum.append(2+j) columnnum.append(2+j+len(fullfield)) columnnum.append(2*len(fullfield)+len(fulladdfield)+2) else: expectreturn.append('') actreturn.append('') if len(fulladdfield) != 0: logicvalue = False columnnum.append(2 * len(fullfield) + len(fulladdfield) + 2) for m in range(len(fulladdfield)): if fulladdfield[m] in addfield: columnnum.append(2 + 2 * len(fullfield) + m) if fulladdfield[m] in list(actlist[i].get('data').keys()): addreturn.append(actlist[i].get('data').get(fulladdfield[m])) else: addreturn.append('') else: addreturn.append('') if i == 0: rowvalue.append(data.get('case_id')) else: rowvalue.append('') rowvalue.extend(expectreturn) rowvalue.extend(actreturn) if len(addreturn) != 0: if len(addreturn) == 1: rowvalue.append(addreturn) else: rowvalue.extend(addreturn) rowvalue.append(logicvalue) sheet_result.append(rowvalue) for o in range(1, 2*len(fullfield)+len(fulladdfield)+3): if o in columnnum: CompareExcel().setfalsecelltype(sheet_result, rownum + 1 + i, o) else: CompareExcel().settruecelltype(sheet_result, rownum + 1 + i, o) return logicvalue def setsurlistvalue(self, sig, surplusexpectlist, fullfield, fulladdfield, sheet_result, rownum, commonexpectlist): for k in surplusexpectlist: surrowvalue = [''] expectlis = [] actlis = [] for l in fullfield: sign = 0 if l in list(k['data'].keys()): sign = 1 expectlis.append(k['data'][l]) if sign == 0: expectlis.append('') actlis.append('') if sig == 'ex': surrowvalue.extend(expectlis) surrowvalue.extend(actlis) else: surrowvalue.extend(actlis) surrowvalue.extend(expectlis) if len(fulladdfield) != 0: addlis = [] for m in fulladdfield: if m in list(k['data'].keys()): addlis.append(k['data'][m]) addlis.append('') surrowvalue.extend(addlis) surrowvalue.append('False') sheet_result.append(surrowvalue) for t in range(len(surplusexpectlist)): for n in range(2, len(surrowvalue) + 1): CompareExcel().setfalsecelltype(sheet_result, rownum + 1 + len(commonexpectlist) + t, n) ``` test_stock_info.py内容如下: ``` import pytest import os import time import openpyxl as op from MMSpackagefile.codefile.ExcelData import ExcelData from MMSpackagefile.codefile.CompareExcel import CompareExcel path1 = 'E:\\MMS\\myfirstproject\\MMSpackagefile\\configdatasource\\stock_info_option12.xlsx' path2 = 'E:\\MMS\\myfirstproject\\MMSpackagefile\\configdatasource\\mms_cofigfile.xlsx' executecase = ExcelData().getexecutecase(path1, 1, 0) #返回可执行案例的list configcomparefield = ExcelData().getexcelfield(path1, 0, 0) #返回stock_info_option12.xlsx第一个sheet页的比对字段list configcomparefield1 = ExcelData().getexcelfield(path1, 0, 0) dirpath = os.path.abspath('..') version_list = ExcelData().getversion(path2, 0, 1) #返回配置文件的版本信息 localtime = time.strftime('%Y%m%d%H%M%S', time.localtime()) path = dirpath + '\\Result\\' + version_list[0] + '_' + version_list[1] + '_' + localtime os.makedirs(path) excel = op.load_workbook(path2) excel.save(path + '\\mms_cofigfile_' + localtime + '.xlsx') exce = op.load_workbook(path1) comparefield, addfield, sheetfield = ExcelData().getfullfielditem(configcomparefield1) excel, sheet = ExcelData().setresulttitle(comparefield, addfield, exce) @pytest.fixture(scope='module') def stock_info(request): value = {} value['case_id'] = request.param['case_id'] value['title'] = request.param['title'] value['ticker'] = request.param['ticker'] value['exchange'] = request.param['exchange'] value['asset_class'] = request.param['asset_class'] value['IsCompare'] = request.param['IsCompare'] value['IsAdd'] = request.param['IsAdd'] return value @pytest.mark.parametrize('stock_info', executecase, indirect=True) def test_stock_info(stock_info): configdata = ExcelData().getversion(path2, 0, 1) oldreturnlist = ExcelData().getrequestdata(configdata[2], stock_info, 'stock-info') newreturnlist = ExcelData().getrequestdata(configdata[3], stock_info, 'stock-info') categoryfield = stock_info.get('IsCompare').split(',') isbool = CompareExcel().comp(oldreturnlist, newreturnlist, stock_info, comparefield, addfield, categoryfield, configcomparefield, sheet) ExcelData().setcolumnautowidth(sheet) excel.save(path + '\\stock_info_option12_' + localtime + '.xlsx') assert isbool ``` 现在有两个问题,一个是CompareExcel.py里函数setresultsheet最后一行logicvalue高亮显示: 提示:This inspection warns about local variables referenced before assignment.我并未在函数外部使用过这个变量logicvalue为什么会有这种提示? 第二个问题,我用openpyxl写excel文件,打开时候提示 ![图片说明](https://img-ask.csdn.net/upload/201912/17/1576586295_401469.png) 不太清楚这个提示是因为什么原因引起的,,之前也出现过这个问题,后来检查是因为重复保存的原因,改成保存一次就好了,现在又出现这个问题,几天了还没排查到原因,哪位大神看下?
第一次用idea,在idea编译器编译运行 出来出现的问题,劳烦各位大神帮忙!
Error:Android Dex: [teamWork] com.android.dex.DexException: Multiple dex files define Lcom/melink/baseframe/ui/e; Error:Android Dex: [teamWork] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) Error:Android Dex: [teamWork] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) Error:Android Dex: [teamWork] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) Error:Android Dex: [teamWork] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) Error:Android Dex: [teamWork] at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) Error:Android Dex: [teamWork] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) Error:Android Dex: [teamWork] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) Error:Android Dex: [teamWork] at com.android.dx.command.dexer.Main.run(Main.java:230) Error:Android Dex: [teamWork] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Error:Android Dex: [teamWork] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) Error:Android Dex: [teamWork] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Error:Android Dex: [teamWork] at java.lang.reflect.Method.invoke(Method.java:606) Error:Android Dex: [teamWork] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:161) Error:Android Dex: [teamWork] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:294) Error:Android Dex: [teamWork] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:130)
如何用java实现SparkSQL dataframe添加自增序号列?
用spark分页查询数据,普通的sql()的不支持分页的sql语句 在网上查资料说可以增加一个序列实现 但是基本都是scala语言,代码如下 // 在原Schema信息的基础上添加一列 “id”信息 val schema: StructType = dataframe.schema.add(StructField("id", LongType)) // DataFrame转RDD 然后调用 zipWithIndex val dfRDD: RDD[(Row, Long)] = dataframe.rdd.zipWithIndex() val rowRDD: RDD[Row] = dfRDD.map(tp => Row.merge(tp._1, Row(tp._2))) // 将添加了索引的RDD 转化为DataFrame val df2 = spark.createDataFrame(rowRDD, schema) df2.show() 这段代码如何用java实现呢 或者说我想把dataframe的数据分行获取,有什么其他办法吗
极光推送时出现的错误
Error:Android Dex: [gas-android] Unable to execute DX Error:Android Dex: [gas-android] com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 Error:Android Dex: [gas-android] at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:495) Error:Android Dex: [gas-android] at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:261) Error:Android Dex: [gas-android] at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:504) Error:Android Dex: [gas-android] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:161) Error:Android Dex: [gas-android] at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) Error:Android Dex: [gas-android] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) Error:Android Dex: [gas-android] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) Error:Android Dex: [gas-android] at com.android.dx.command.dexer.Main.run(Main.java:277) Error:Android Dex: [gas-android] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Error:Android Dex: [gas-android] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) Error:Android Dex: [gas-android] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Error:Android Dex: [gas-android] at java.lang.reflect.Method.invoke(Method.java:498) Error:Android Dex: [gas-android] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:188) Error:Android Dex: [gas-android] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:336)
VB中引用EXCEL填表格,生成的EXE文件报错
在VB6.0编译环境能打开excel ,但生成exe文件后,就报错![图片说明](https://img-ask.csdn.net/upload/201705/17/1495000293_517657.jpg) ``` Option Explicit Dim newxls As New Excel.Application Dim newbooks As New Excel.Workbook Dim newsheet As New Excel.Worksheet Dim j As Integer Dim i As Integer Private Sub Command1_Click() Text1.Enabled = True Command4.Visible = True End Sub Private Sub Command2_Click() newxls.Workbooks.Open App.Path & "\EN样式表格.xlsx" Set newsheet = newxls.Worksheets(1) Call exinput Label1.Caption = "共进行" & i & "项" Label2.Caption = "未通过" & j & "项" If j < 1 Then Label5.Caption = "通过认证" MsgBox ("通过认证") Image1.Picture = LoadPicture(App.Path & "\image\10-1.ico") Else Label5.Caption = "未通过认证" MsgBox ("未通过认证") Image1.Picture = LoadPicture(App.Path & "\image\10-2.ico") End If Command5.Enabled = True newxls.Visible = True Command2.Enabled = False End Sub Private Sub Command3_Click() Form6.Show newxls.Quit Set newsheet = Nothing Set newbooks = Nothing Set newxls = Nothing Unload Form13 End End Sub Private Sub Command4_Click() Text1.Text = "" Text1.Enabled = False Command4.Visible = False End Sub Private Sub Command5_Click() newxls.Quit Set newsheet = Nothing Set newbooks = Nothing Set newxls = Nothing End Sub Private Sub Form_Load() Text1.Text = enbz Form13.Height = 5940 Command5.Enabled = False Text1.Enabled = False Command4.Visible = False j = 0 End Sub Sub exinput() newsheet.Range("B2").Value = gsname newsheet.Range("E2").Value = czyname newsheet.Range("C3").Value = wginfor(0) newsheet.Range("E3").Value = wginfor(1) newsheet.Range("G3").Value = wginfor(2) newsheet.Range("C4").Value = wginfor(5) newsheet.Range("E4").Value = wginfor(6) newsheet.Range("G4").Value = wginfor(3) newsheet.Range("I4").Value = wginfor(4) newsheet.Range("H2").Value = Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日" i = 0 Adodc1.Recordset.MoveFirst Do Until Adodc1.Recordset.EOF newsheet.Cells(6 + i, 2) = DataGrid1.Columns(0) newsheet.Cells(6 + i, 3) = DataGrid1.Columns(1) newsheet.Range(Cells(6 + i, 4), Cells(6 + i, 7)).Merge newsheet.Cells(6 + i, 4) = DataGrid1.Columns(2).Text newsheet.Range(Cells(6 + i, 8), Cells(6 + i, 9)).Merge If DataGrid1.Columns(3) < 0 Then newsheet.Cells(6 + i, 8) = "满足" Else newsheet.Cells(6 + i, 8) = "不满足" j = j + 1 End If i = i + 1 Adodc1.Recordset.MoveNext Loop newsheet.Range(Cells(6 + i, 2), Cells(6 + i, 9)).Merge newsheet.Range(Cells(6, 1), Cells(6 + i, 1)).Merge newsheet.Cells(7 + i, 1) = "备注" newsheet.Range(Cells(7 + i, 2), Cells(7 + i, 9)).Merge newsheet.Cells(7 + i, 2).Interior.ColorIndex = 20 newsheet.Cells(7 + i, 2) = Text1.Text newsheet.Cells(8 + i, 1) = "认证结果" newsheet.Range(Cells(8 + i, 2), Cells(8 + i, 7)).Merge If j > 0 Then newsheet.Range(Cells(8 + i, 8), Cells(8 + i, 9)).Merge newsheet.Cells(8 + i, 8) = "未通过认证" newsheet.Cells(8 + i, 2).Select newsheet.Pictures.Insert (App.Path & "\image\10-2.ico") Else newsheet.Range(Cells(8 + i, 8), Cells(8 + i, 9)).Merge newsheet.Cells(8 + i, 8) = "通过认证" newsheet.Cells(8 + i, 2).Select newsheet.Pictures.Insert (App.Path & "\image\10-1.ico") End If newsheet.Range(Cells(1, 1), Cells((8 + i), 9)).Borders.LineStyle = 1 newsheet.Range(Cells(1, 1), Cells((8 + i), 9)).Borders.Weight = 3 newsheet.Shapes(1).Height = 20 End Sub ``` 神啊救救我吧
android studio里配置C++报错?
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForDebug'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73) at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101) at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.UncheckedIOException: java.nio.file.AccessDeniedException: C:\WINDOWS\Temp at com.android.builder.merge.LazyIncrementalFileMergerInputs.load(LazyIncrementalFileMergerInputs.java:88) at com.android.builder.merge.LazyIncrementalFileMergerInputs.lambda$fromNew$0(LazyIncrementalFileMergerInputs.java:59) at com.android.tools.build.apkzlib.utils.CachedSupplier.get(CachedSupplier.java:72) at com.android.builder.merge.LazyIncrementalFileMergerInput.lambda$new$2(LazyIncrementalFileMergerInput.java:138) at com.android.tools.build.apkzlib.utils.CachedSupplier.get(CachedSupplier.java:72) at com.android.builder.merge.LazyIncrementalFileMergerInput.open(LazyIncrementalFileMergerInput.java:225) at com.android.builder.merge.DelegateIncrementalFileMergerInput.open(DelegateIncrementalFileMergerInput.java:49) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:406) at com.android.builder.merge.IncrementalFileMerger.merge(IncrementalFileMerger.java:73) at com.android.build.gradle.internal.transforms.MergeJavaResourcesTransform.transform(MergeJavaResourcesTransform.java:411) at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239) at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102) at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95) ... 33 more Caused by: java.nio.file.AccessDeniedException: C:\WINDOWS\Temp at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) at sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86) at sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518) at java.nio.file.Files.newDirectoryStream(Files.java:457) at com.google.common.io.MoreFiles.deleteRecursively(MoreFiles.java:516) at com.android.tools.build.apkzlib.bytestorage.TemporaryFile.deleteFile(TemporaryFile.java:57) at com.android.tools.build.apkzlib.bytestorage.TemporaryFile.close(TemporaryFile.java:48) at com.android.tools.build.apkzlib.bytestorage.TemporaryDirectory$1.close(TemporaryDirectory.java:50) at com.android.tools.build.apkzlib.bytestorage.TemporaryDirectoryStorage.close(TemporaryDirectoryStorage.java:101) at com.android.tools.build.apkzlib.bytestorage.OverflowToDiskByteStorage.close(OverflowToDiskByteStorage.java:167) at com.android.tools.build.apkzlib.bytestorage.ChunkBasedByteStorage.close(ChunkBasedByteStorage.java:142) at com.android.tools.build.apkzlib.zip.ZFile.close(ZFile.java:1210) at com.android.builder.files.RelativeFiles.fromZip(RelativeFiles.java:125) at com.android.builder.merge.LazyIncrementalFileMergerInputs.load(LazyIncrementalFileMergerInputs.java:86) ... 61 more
Python遍历文件夹的文件提取关键信息到新的表格
各位大神好,小弟目前在自学Python处理办公的一些数据,遇到一个问题: 假设目前有一份excel数据,格式为 df = ['ID', 'Name', 'Tracking Number'], 大概几千行这样; 另一个文件夹A下面有名称格式包含生成日期的多个CSV数据文件,格式为 df1 = ['Num1', 'Num2', 'Num3', 'Tracking Number']; 现在想根据df这里面的Tracking Number这一列的数据,去遍历文件夹A下面的所有CSV文件找到对应的Num1,Num2, Num3并且提取到df里面对应的行。 我目前尝试的方法是将A文件夹下所有文件合并成一个df,去重后再根据TrackingNumber使用merge函数拼接过去,这样的话随着A文件夹文件数量增多生成的合并df会很大,运行很慢,步骤过于繁琐,想请教一下各位有没有快捷点的方法可以实现?
对于一个1行n列的数据集,sas如何引用具体的各个数值
事实上,我是proc univarite一个分数字段的10分位数临界点,然后需要按照这10个临界点对分数做分组,我想直接引用这个数据,不想每次都要手动输入,尝试了sas数组,但还是没整好。 附上代码: proc univariate data=cc.merge_psi_nocon; where dt=20181031; var b5score; output out=bin1 pctlpre=p pctlpts=10 to 90 by 10; run; data cc.merge_psi_nocon; set cc.merge_psi_nocon; if b5score<=481 then fenzu=1; else if b5score<=534 then fenzu=2; else if b5score<=569 then fenzu=3; else if b5score<=598 then fenzu=4; else if b5score<=624 then fenzu=5; else if b5score<=649 then fenzu=6; else if b5score<=676 then fenzu=7; else if b5score<=708 then fenzu=8; else if b5score<=754 then fenzu=9; else fenzu=10; run; 其实我就是想把bin1里的481 534 569 ...直接引用下来![图片说明](https://img-ask.csdn.net/upload/201908/24/1566641504_456823.png)
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
有一次面试的时候,被问到进程之间有哪些通信方式,不过由于之前没深入思考且整理过,说的并不好。想必大家也都知道进程有哪些通信方式,可是我猜很多人都是靠着”背“来记忆的,所以今天的这篇文章,讲给大家详细着讲解他们是如何通信的,让大家尽量能够理解他们之间的区别、优缺点等,这样的话,以后面试官让你举例子,你也能够顺手拈来。 1、管道 我们来看一条 Linux 的语句 netstat -tulnp | gr...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片
网络(8)-HTTP、Socket、TCP、UDP的区别和联系
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 一、TCP与UDP的不同 1. 是否需要建立连接。 UDP在传送数据之前不需要先建立连接;TCP则提供面向连接的服务; 2. 是否需要给出确认 对方的传输层在收到UDP报文后,不需要给出任何确认,而 TCP需要给出确认报文,要提供可靠的、面向连接的传输服务。 3.虽然UDP不提供可靠交...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
开挂的人生!那些当选院士,又是ACM/IEEE 双料Fellow的华人学者们
昨日,2019年两院院士正式官宣,一时间抢占了各大媒体头条。 朋友圈也是一片沸腾,奔走相告,赶脚比自己中了大奖还嗨皮! 谁叫咱家导师就是这么厉害呢!!! 而就在最近,新一年度的IEEE/ACM Fellow也将正式公布。 作为学术届的顶级荣誉,不自然地就会将院士与Fellow作比较,到底哪个含金量更高呢? 学术君认为,同样是专业机构对学者的认可,考量标准不一,自然不能一概而论。 但...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录Python语言高频重点汇总**GitHub面试宝典仓库——点这里跳转**1. 函数-传参2. 元类3. @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9.
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
代码详解:如何用Python快速制作美观、炫酷且有深度的图表
全文共12231字,预计学习时长35分钟生活阶梯(幸福指数)与人均GDP(金钱)正相关的正则图本文将探讨三种用Python可视化数据的不同方法。以可视化《2019年世界幸福报告》的数据为例,本文用Gapminder和Wikipedia的信息丰富了《世界幸福报告》数据,以探索新的数据关系和可视化方法。《世界幸福报告》试图回答世界范围内影响幸福的因素。报告根据对“坎特里尔阶梯问题”的回答来确定幸...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
如何写一篇技术博客,谈谈我的看法
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 我一直推崇学技术可以写技术博客去沉淀自己的知识,因为知识点实在是太多太多了,通过自己的博客可以帮助自己快速回顾自己学过的东西。 我最开始的时候也是只记笔记,认为自己能看得懂就好。但如果想验证自己是不是懂了,可以写成技术博客。在写技术博客的...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【设计模式】单例模式的八种写法分析
网上泛滥流传单例模式的写法种类,有说7种的,也有说6种的,当然也不排除说5种的,他们说的有错吗?其实没有对与错,刨根问底,写法终究是写法,其本质精髓大体一致!因此完全没必要去追究写法的多少,有这个时间还不如跟着宜春去网吧偷耳机、去田里抓青蛙得了,一天天的....
《面试宝典》:检验是否为合格的初中级程序员的面试知识点,你都知道了吗?查漏补缺
欢迎关注文章系列,一起学习 《提升能力,涨薪可待篇》 《面试知识,工作可待篇》 《实战演练,拒绝996篇》 也欢迎关注公 众 号【Ccww笔记】,原创技术文章第一时间推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《面试知识,工作可待篇》-Java笔试面试基础知识大全 前言 是不是感觉找工作面试是那么难呢? 在找工作面试应在学习的基础进行总结面试知识点,工作也指日可待,欢...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
微博推荐算法简述
在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法。有这样一些问题:推荐系统适用哪些场景?用来解决什么问题、具有怎样的价值?效果如何衡量? 推荐系统诞生很早,但真正被大家所重视,缘起于以”facebook”为代表的社会化网络的兴起和以“淘宝“为代表的电商的繁荣,”选择“的时代已经来临,信息和物品的极大丰富,让用户如浩瀚宇宙中的小点,无所适从。推荐系统迎来爆发的机会,变得离用户更近: 快...
相关热词 c#开发的dll注册 c#的反射 c# grid绑定数据源 c#多线程怎么循环 c# 鼠标左键 c# char占位符 c# 日期比较 c#16进制转换为int c#用递归求顺序表中最大 c#小型erp源代码
立即提问