导出数据中间有若干空格,且有重复数据
关键点1 :导入数据(pandas)
df_txt = pd.read_table(filepathNumber,sep='\s+',header=None,names=['PART','Node','Attached elements','U1','U2','U3'])
sep = '\s+'采用正则表达式的方法来判断空格
header = None表示第一行不作为头部
关键点2:删除重复行
df_txt = df_txt.drop_duplicates(['PART','Node'],keep='first')#删除重复行
关键点3:pandas按照条件筛选
def condition(x):
#设置筛选条件
condition_1_1 = df_txt.PART == 'TANPIAN-1'
condition_1_2 = df_txt.PART == 'TANPIAN-1-RAD-4'
condition_1_3 = df_txt.PART == 'TANPIAN-1-RAD-3'
condition_1_4 = df_txt.PART == 'TANPIAN-1-RAD-2'
condition_2 = df_txt.Node == 1338
result = condition_1_1&condition_2 | condition_1_2&condition_2 | condition_1_3&condition_2 | condition_1_4&condition_2
return result
使用loc筛选
df_txt = df_txt.loc[condition]
关键点4:pandas筛选后并没有按照我所要求的顺序排列
def changeOrder(x):
# 数据按照指定顺序进行排列
df_Order = pd.DataFrame({'PART':['TANPIAN-1','TANPIAN-1-RAD-4','TANPIAN-1-RAD-3','TANPIAN-1-RAD-2'],})
sort_mapping = df_Order.reset_index().set_index("PART")
x['size_num'] = x['PART'].map(sort_mapping['index'])
x = x.sort_values('size_num')
return x
df_txt = changeOrder(df_txt)
关键点5:数据裁切
只引用pandas几行或者几列
df_Number = df_txt[['U1','U2','U3']]
关键点6:每次for循环产生的DateFrame存入到一个新的DateFrame中
df_empty = pd.DataFrame(columns=['U1', 'U2', 'U3'])#定义一个空DateFrame
for filepathNumber in filepath:
df_empty = df_empty.append(df_Number)
关键点7:使用print不打印index
print(df_Number.to_string(index=False))