我有4个文件需要与另一个文件合并并保存。这是我到目前为止所尝试的,
keytool -importcert -file [output-file-name].cer -keystore [truststore-file-name].jks -alias [alias]
但是当我打印files_merged时,它只有标题,
ref ='/home/user/Dir/Reference'
ref = pd.read_csv(ref, sep='\t', header=0)
#T_seq = T_seq.reset_index(drop=False)
#data_frames = []
for filename in file_DE:
name = os.path.basename(os.path.normpath(filename))
files = pd.read_csv(filename, sep='\t', header=0)
for eachfile in files:
files_merged = pd.merge(eachfile, ref , left_on='Gene' , right_on= 'Gene')
我的意思是一个空的数据框,索引'基因'来自档案参考和所有其他文件'有匹配的行,但这样它只返回一个空的数据帧。
最后,我所瞄准的是一个数据框,其中所有行都填充了值,而不是我现在拥有的只是标题和空数据框。
非常感谢任何帮助
谢谢
答案 0 :(得分:0)
您确定Gene
列的交集不为空吗?
因为这有效:
from pandas import DataFrame, merge
from numpy.random import randint, seed
seed(4321)
shape = (10,2)
ref = DataFrame(
data=randint(1, 4, shape),
columns=['a','b']
)
csvs = [DataFrame(randint(1, 13, shape), columns=['a','c']) for _ in range(4)]
for csv in csvs:
print merge(
csv, ref,
left_on='a',
right_on='a'
).head()
输出:
a c b
0 2 7 3
1 2 7 2
2 2 7 3
3 2 7 1
4 2 7 1
a c b
0 2 9 3
1 2 9 2
2 2 9 3
3 2 9 1
4 2 9 1
a c b
0 2 9 3
1 2 9 2
2 2 9 3
3 2 9 1
4 2 9 1
a c b
0 2 9 3
1 2 9 2
2 2 9 3
3 2 9 1
4 2 9 1
答案 1 :(得分:0)
你可以这样做:
sep = r'\s+'
ref ='/home/user/Dir/Reference'
ref = pd.read_csv(ref, sep=sep, header=0)
for filename in file_DE:
name = os.path.basename(os.path.normpath(filename))
df = pd.read_csv(filename, sep=sep, header=0)
pd.merge(df, ref, on='Gene').to_csv('merged_' + name, index=False)