|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 poppy章鱼 于 2022-3-4 16:08 编辑
有两个文件
- 1.txt
- aa1 bb1
- dd1 cc1
- ee1 ff1
- kk1 gg1
复制代码
- 2.txt
- aa1 bb1 0.1
- cc1 dd1 0.3
- ee1 ff1 0.2
- gg1 kk1 0.5
复制代码
输出需求:
- result.txt
- aa1 bb1 0.1
- dd1 cc1 0.3
- ee1 ff1 0.2
- kk1 gg1 0.5
复制代码
有1.txt,和2.txt 两个文件
如果2.txt每行第一列,第二列和1.txt每行第一列,第二列相同则按原来的输出
如果2.txt每行第一列,第二列和1.txt第二列,第一列相同,则输出需要调整为第二列,第一列,第三列
感激。
是这样?
- import pandas as pd
- df1 = pd.read_csv('1.txt', sep=r'\s+', header=None, names=['a','b'])
- print(df1)
- df2 = pd.read_csv('2.txt', sep=r'\s+', header=None, names=['a','b','val'])
- print(df2)
- # 情况一,则 不变
- df_s = df2[ (df1.a==df2.a) & (df1.b==df2.b)]
- # 情况二,则调换位置
- df_d = df2[ (df1.a==df2.b) & (df1.b==df2.a)][['b', 'a', 'val']]
- df_d.columns = ['a', 'b', 'val']
- res = pd.concat([df_s, df_d])
- print("----------------\n结果:\n", res)
- res.to_excel('result_data.xlsx', index=False)
复制代码
|
|