2016-10-20 43 views
3

我有兩個CSV文件的形狀可以說3x3。覆蓋兩個熊貓Dataframes或numpy數組並創建一個鍵值字典

文件1看起來像這樣:

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

和文件2是這樣的:

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

我的目標是覆蓋兩個陣列或DataFrame S和創建以下形式的字典:

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

我可以創建一些基於循環的東西,但我想知道是否有辦法掩蓋或覆蓋數組並創建相應的字典?

回答

4

您可以展平dataframes,放下空值,和字典/ ZIP他們:

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