将数据框的所有行值输入到变量中
Posted
技术标签:
【中文标题】将数据框的所有行值输入到变量中【英文标题】:Input all row values of dataframe into a variable 【发布时间】:2022-01-20 01:13:24 【问题描述】:有没有办法将数据框中行的所有输出值放入一个变量中?
我的代码是这样的..
q1 = ps.sqldf("SELECT sdetframe.bill_no AS 'bill_number', sdetframe.ref_no AS 'ref_number', sdetframe.price_paid AS 'price_paid', sdetframe.raw_price AS 'raw_price', sdetframe.quanty AS 'quantity' FROM sdetframe WHERE ord_date = '" + dfd + "'")
q1df = DataFrame(q1)
q1data = q1df.at[0, 'bill_number']
print(q1df)
q1df 的输出是这样的……
bill_number ref_number price_paid raw_price quantity
0 197968 2 383.93 383.93 1.0
1 197968 2 383.93 383.93 1.0
2 197968 2 383.93 383.93 1.0
3 197969 1 357.14 357.14 1.0
4 197969 151 500.00 500.00 1.0
q1data 的输出只有 197968。有没有一种方法可以让我获取所有票据编号并将其放入变量中??
提前致谢。
我将它放入一个变量中,以便我可以将它调用到另一个数据框查询。下面是另一个代码...
q2 = ps.sqldf("SELECT slsframe.pay_type AS 'pay_type', slsframe.received AS 'received' FROM slsframe WHERE bill_no = '" + str(q1data) + "'")
q2df = DataFrame(q2)
【问题讨论】:
pandas
at
方法只返回一个值
我明白了。我现在使用 tolist() 函数。
【参考方案1】:
一种方法是使用tolist()
将所有值作为一个列表。
q1data= q1df.bill_number.tolist()
打印:
[197968, 197968, 197968, 197969, 197969]
编辑 用户希望根据问题更新将其用于另一个 SQL 查询。
为此,将list
转换为tuple
并调用查询。
q1data = tuple(q1data)
ps.sqldf("SELECT slsframe.pay_type AS 'pay_type', slsframe.received AS 'received' FROM slsframe WHERE bill_no IN %(q1data)")
如果您想从列表中删除重复项,请转换为set
,然后转换为tuple
。
【讨论】:
非常感谢。但我想输入 bill_number 值的原因是我会将它用于另一个查询。我将再次编辑代码供您查看。 另一个 Pandas 查询或 SQL 查询? 另一个sql查询。 您可以使用.isin
作为列表从另一个数据帧中查询
我已更新答案以包含该要求【参考方案2】:
如果您希望变量为Series
:
S1 = q1df['bill_number']
输出:
0 197968
1 197968
2 197968
3 197969
4 197969
如果您希望变量为List
:
L1 = q1df['bill_number'].tolist()
输出:
['197968', '197968', '197968', '197969', '197969']
【讨论】:
我想将 bill_number 值放到一个变量中,这样我就可以将它用于另一个 sql 查询。我编辑上面的问题。谢谢。以上是关于将数据框的所有行值输入到变量中的主要内容,如果未能解决你的问题,请参考以下文章