我有一个pandas数据帧,我使用pandas.rpy.common中的convert_to_r_dataframe方法转换为R dataframe.我把它设置为这样:
self.event = pd.read_csv('C://' + self.event_var.get() + '.csv')
final_products = pd.DataFrame({'Product': self.event.Product, 'Size': self.event.Size, 'Order': self.event.Order})
r.assign('final_products', com.convert_to_r_dataframe(final_products))
r.assign('EventName', self.event_var.get())
r.assign('EventTime', self.eventtime_var.get())
r.source('application.r')
Run Code Online (Sandbox Code Playgroud)
self.event_var.get()在GUI中检索用户输入(我正在使用Tkinter创建应用程序).产品,尺寸和订单是CSV文件中的列.
由于Rpy2在Python中设置R环境,我希望R环境能够理解final_products R数据帧.不幸的是,当R脚本运行时,它没有给出正确的结果(我使用R脚本创建图形,但是当程序终止时它们只是空的).但是,EventName和EventTime变量确实有效.这里有什么我想念的吗?为什么在R环境中没有正确解释为什么在Python中分配R数据帧的想法?
获得的错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
File "G:\Development\workspace\GUI\GUI.py", line 126, in evaluate
r.source('application.r')
File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 86, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 35, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)
Run Code Online (Sandbox Code Playgroud) 我试图从包含元组和词典的列表中获取特定的字典.我如何从下面的列表中返回带有键'k'的字典?
lst = [('apple', 1), ('banana', 2), {'k': [1,2,3]}, {'l': [4,5,6]}]
Run Code Online (Sandbox Code Playgroud) 我试图在一个框架内的网格上放置两个按钮,占用整个行,无论根框架的大小.所以基本上一个按钮占据了行的一半,而另一个占据了另一半.这是我的代码:
self.button_frame = tk.Frame(self)
self.button_frame.pack(fill=tk.X, side=tk.BOTTOM)
self.reset_button = tk.Button(self.button_frame, text='Reset')
self.run_button = tk.Button(self.button_frame, text='Run')
self.reset_button.grid(row=0, column=0)
self.run_button.grid(row=0, column=1)
Run Code Online (Sandbox Code Playgroud)
不确定从哪里开始.任何建议将不胜感激.谢谢!
我试图在Pandas Dataframe上执行逐行操作,如下所示:
df = pd.DataFrame(columns=['Product', 'Price', 'Buy', 'Sell'])
df.loc[len(df.index)] = ["Apple", 1.50, 3, 2]
df.loc[len(df.index)] = ["Banana", 0.75, -8, 4]
df.loc[len(df.index)] = ["Carrot", 2.00, -6, -3]
df.loc[len(df.index)] = ["Blueberry", 0.05, 5, 6]
Run Code Online (Sandbox Code Playgroud)
基本上我想创建一个新的列"比率",它将价格/买入或价格/卖出分开,具体取决于哪个(买入)或者卖出(卖出)更大.我不确定怎么做...我会使用apply函数吗?
谢谢!
我试图将列表中的所有数字四舍五入到小数点后两位,如下所示:
a = [[4.5555, 5.6666, 8.3365], [10.4345, 1.574355. 0.7216313]]
b = [x for x in a for y in [round(z, 2) for z in x]]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用列表理解来执行此操作,但无法实现。b 变量只返回与 a 相同的内容。这是最好的方法吗?有没有更好的替代方法?谢谢!