我设计了一个Spinner GUI,在那里我已经给出了一些选项集,但是我需要知道如何通过扫描CSV文件中的值并显示为选项集来显示选项集,在这里我也能够显示值集,但不能作为Spinner的输入。在我的CSV文件中有很多相同值的重复,所以我使用了pandas的Counter并进行了排序,因此它只显示一次。 我的代码:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.spinner import Spinner
import pandas as pd
from collections import Counter
Builder.load_string('''
<MainScreen>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
BoxLayout:
size_hint: 1, .9
orientation: 'vertical'
padding: 20
spacing: 20
Spinner:
id: firsto
text: 'select'
values: root.optionf
on_text: root.updatesecond(firsto.text)
Spinner:
id: secondo
text: 'select'
values: root.options
''')
class MainScreen(FloatLayout):
def __init__(self, **kwargs):
self.buildLists()
super(MainScreen, self).__init__(**kwargs)
def buildLists(self):
df = pd.read_csv('data.csv')
saved_column = df['marks'] #you can also use df['column_name']
a = (Counter(saved_column))
b = (sorted(a))
print(b)
self.optionf = ['Select','a','b','c']
self.options = ['Select']
def updatesecond(self,text):
if text == 'a':
self.ids.secondo.values =['1','2']
elif text == 'b':
self.ids.secondo.values =['3','4']
else:
self.ids.secondo.values =['5','6']
def onExit(self):
App.get_running_app().stop()
class TestApp(App):
def build(self):
return MainScreen()
if __name__ == "__main__":
TestApp().run()
可以扫描csv文件的第一列吗。如果第一列是重复多次的距离,假设列第一的距离为70.1,40,5.1,40.8,70.1,其中70.1将重复多次,则应首先在微调器中显示一次。而不是这一行=>gt;>
^{pr2}$将显示来自CSV的值。 非常感谢。在
我想我们只需要做些改变,比如:
而不是这条线
做些改变
^{pr2}$其中a是存储列first的值。在
相关问题 更多 >
编程相关推荐