2
比方說,我有以下兩個pandas.DataFrame
,df0
和df1
:篩選數據時,列匹配
import pandas as pd
# 1st data set
dat0 = [['A0', 'B0', 'C0', 'case0', 1],
['A0', 'B2', 'C0', 'case0', 2],
['A1', 'B0', 'C0', 'case0', 3],
['A1', 'B1', 'C0', 'case0', 4],
['A0', 'B0', 'C1', 'case0', 5]]
df0 = pd.DataFrame(dat0, columns=['colA', 'colB', 'colC', 'colCase', 'colVal'])
# 2nd data set
dat1 = [['A0', 'B1', 'C2', 'case1', 6],
['A0', 'B2', 'C2', 'case1', 7],
['A1', 'B0', 'C2', 'case1', 8],
['A2', 'B2', 'C2', 'case1', 9]]
df1 = pd.DataFrame(dat1, columns=['colA', 'colB', 'colC', 'colCase', 'colVal'])
我試圖讓所有的線,對於每對夫婦的列(A, B)具有case0和case1的值(即每個DF中的值)。
萬一它很重要,我不能在DataFrame中有「重複」行:集合(A,B,C,大小寫)在每個DF中都是唯一的。
所以我想達到一個代碼,看起來像:
# Merge the DataFrames
df = pd.concat([df0, df1]) # maybe concat is not a good starting point
for a in ['A0', 'A1', 'A2']:
for b in ['B0', 'B1', 'B2']:
table = my_great_function(df, a, b)
if table:
print '---'
print table
,並得到以下結果:
---
colA colB colC colCase colVal
1 A0 B2 C0 case0 2
1 A0 B2 C2 case1 7
---
colA colB colC colCase colVal
2 A1 B0 C0 case0 3
2 A1 B0 C2 case1 8
注意我不希望得到的結果,其中只有一條線出現,也不會出現兩行或多行顯示同一個案例。
有什麼建議嗎?
似乎很好。我儘快嘗試。 – Simpom
究竟需要什麼!謝謝。 – Simpom