【发布时间】:2017-01-27 09:49:05
【问题描述】:
我目前正在使用 csv 文件和 pandas 模块自动执行 SQL 脚本。其中条件基于我的 csv 文件中存在的值。
示例 csv 文件如下所示。
First Last
X A
Y B
Z C
我想要一个看起来像这样的新数据框(添加了新列)。
First Last condition
X A First='X' and Last='A'
Y B First='Y' and Last='B'
Z C First='Z' and Last='C'
所以我可以在我的 sql where 条件中使用第三列。
注意: 我可以通过下面的方法实现这一点,但我不能使用它,因为我的列名不是静态的,我的意思是我将在具有不同列名的多个 csv/df 上使用它,数字列也可能超过 2。
df['condition'] = 'First=\'' + df['First'] +'\' And ' + 'Last=\'' + df['Last'] +'\''
如果我解析了“条件”列,那么我的最终 SQL 将如下所示:
Select First, Last from mydb.customers
where
(First='X' and Last='A') or
(First='Y' and Last='B') or
(First='Z' and Last='C')
谢谢
【问题讨论】:
-
所以你只想要一个能做到这一点的函数?
-
df.columns给出所有列的名称,以便您可以将其与for循环一起使用。 -
@Dmitry 是的,事实证明这是一个函数,我应该按照 furas 的建议将其应用于数据帧