2016-10-20 1 views
3

У меня есть два CSV-файла формы, которые позволяют говорить 3x3.Наложение двух pandas Dataframes или numpy массивов и создание словаря значений ключа

Файл 1 выглядит следующим образом:

-1, 2,-1 
-1,-1, 3 
-1, 8, 9 

и Файл 2, как это:

-1, 56,-1 
-1,-1, 73 
-1, 24, 100 

Моя цель состоит в том, чтобы наложить как массивы или DataFrame с и создать словарь в следующей форме:

dict = {2:56, 3:73, 8:24, 9:100} 

Я могу создать что-то основанное на петле, но мне интересно, есть ли способ маскирования или наложения массивов и создания соответствующего словаря?

ответ

4

Вы можете сгладить dataframes, падение нулевые значения, и ДИКТ/пронестись их:

import pandas as pd 

# Load the data, converting -1 to NaN 
dfa = pd.read_csv('file1.csv', header=None, na_values=[-1]) 
dfb = pd.read_csv('file2.csv', header=None, na_values=[-1]) 

# Flatten the dataframes 
a = dfa.values.flatten() 
b = dfb.values.flatten() 

# Remove null values and cast back to ints (if that matters) 
# Note that both are filtered according to the key data 
a = a[~np.isnan(a)].astype(int) 
b = b[~np.isnan(a)].astype(int) 

# Zip to pair the lists, then convert to a dict 
d = dict(zip(a, b)) 
+0

@piRSquared хороший момент! Сделано изменение. – ASGM

+0

Спасибо за ответ! –

+0

@Floriand проблем нет! Если он исправит вашу проблему, вы можете принять ответ, чтобы люди знали, что он решен, и если вам понравился ответ, вы можете его перенести (хотя ни один из них не требуется!). – ASGM

Смежные вопросы