我有一個數據幀df,我想要導出到json輸出。我還需要過濾兩列,例如列a和列b。默認情況下,我需要導出整個數據框,但我也希望將值傳遞給列a和列b作爲可選變量,以僅導出某些數據。例如,當col a =「yes」和col b =「red」時,導出它。我試過這個:df.to_json,但我想知道如何過濾。 我如何實現這一目標?我是熊貓和python的新手,請提供更詳細的解釋。任何幫助表示讚賞,非常感謝你!用兩個過濾器將數據幀導出到json
回答
我認爲你需要boolean indexing
與&
(and
),但是有必要檢查是否需要所有的值。解決方法是添加另一個條件並鏈接|
(or
)。
df = pd.DataFrame({'col a':['yes','no','yes', 'yes'],
'col b':['red','green','orange','red']})
print (df)
col a col b
0 yes red
1 no green
2 yes orange
3 yes red
def filtering(a='ALL',b='ALL'):
m1 = df['col a'] == a
m2 = df['col b'] == b
m3 = a == 'ALL'
m4 = b == 'ALL'
return df[(m1|m3) & (m2|m4)].to_json()
print (filtering())
{"col a":{"0":"yes","1":"no","2":"yes","3":"yes"},
"col b":{"0":"red","1":"green","2":"orange","3":"red"}}
print (filtering('yes','red'))
{"col a":{"0":"yes","3":"yes"},"col b":{"0":"red","3":"red"}}
編輯:
對於由值列表過濾是溶液相似,只有條件變化 - 需要isin
和in
(從未在數據變化ALL
一些普遍值):
def filtering(a=['ALL'],b=['ALL']):
m1 = df['col a'].isin(a)
m2 = df['col b'].isin(b)
m3 = 'ALL' in a
m4 = 'ALL' in b
return df[(m1|m3) & (m2|m4)].to_json()
print (filtering())
{"col a":{"0":"yes","1":"no","2":"yes","3":"yes"},
"col b":{"0":"red","1":"green","2":"orange","3":"red"}}
print (filtering(['yes'],['red', 'orange']))
{"col a":{"0":"yes","2":"yes","3":"yes"},
"col b":{"0":"red","2":"orange","3":"red"}}
這有幫助,但如何使這兩個條件可選? – user3062229
這是什麼意思?你能解釋更多嗎?或者需要一些字符來代替'red'來導出所有行,類似於'yes'? – jezrael
我需要一個函數將數據框導出爲json,並將所有數據作爲默認和可選的過濾列和列b。假設我有這個函數df2json(df,a,b)。一個(是)和b(紅色)將是傳遞給該函數的可選變量。 – user3062229
- 1. 過濾器[R數據幀以包括兩個字符串
- 2. 過濾數據幀
- 3. 過濾多個CSV文件,同時導入到數據幀
- 4. 過濾器JSON數據Swift
- 5. Angularjs過濾器Json數據
- 6. 通過第二個數據幀過濾數據幀
- 7. 過濾出的數據幀中的R
- 8. 過濾器數據幀不工作
- 9. 火花數據幀過濾器
- 10. 將多個R數據幀導出到單個Excel工作表
- 11. Pyspark按另一個數據幀的列過濾數據幀
- 12. Python Pandas:過濾數據幀
- 13. 過濾單列數據幀
- 14. 數據幀過濾多列
- 15. 過濾數據幀閃亮
- 16. 數據幀過濾值
- 17. 將畫布數據導出到json
- 18. 將數據從Neo4j導出到jSON
- 19. 過濾多個條件的數據幀
- 20. 過濾多個條件的數據幀
- 21. 過濾一個pyspark數據幀
- 22. JSON到數據幀
- 23. ui-grid將所有過濾的數據導出到csv
- 24. 如何將過濾的數據從SQL Server導出到Excel?
- 25. 過濾JSON數據
- 26. 過濾JSON數據
- 27. 兩個日期之間的數據幀索引/過濾
- 28. 將列表中的每個數據幀導出到csv
- 29. 使用過濾器映射兩個json數組
- 30. 如何使用過濾器過濾角度的JSON數據
如果您有一個基本的數據框來創建可重複的結果,將會很有幫助。 –
如果col a不是「yes」或col b不是「red」會怎麼樣? –
col a可以是yes或no,col b可以是'red','black','green','blue'等以sql方式存放:類似於select * from table並選擇*從表中哪裏col a =''是'和col b ='紅色'。但是,where條件是可選的。默認情況下,它應該導出所有,但當我指定它只需要導出某些數據的條件。 – user3062229