查询CSV文件维护外键关系?这可能吗?

2024-09-29 23:19:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆表已经导出为CSV文件。它们维护一些主键/外键关系,我基本上想用这些(一个新的CSV文件)创建一个新视图。在

数据库/csv可以简化为:

Replys.csv
-PostId
-ReplyId 
-ReplyText

Users.csv
-ReplyId
-UserId
-UserText

其中ReplyIdReplys.csv中的主键,Users.csv中的外键。在

对于每个User,找到ReplyId: Users.csv -> Replys.csv : ReplyId

所以打印每个用户,他们的ReplyId和ReplyText。在

^{pr2}$

在SQL中,我相信它应该类似于:

SELECT ReplyId, ReplyText
FROM Users, Replys
WHERE Users.ReplyId = Replys.ReplyID

如何仅使用CSV文件来实现这一点?有可能吗?在

编辑:这个问题很让人困惑,但我想我已经解释清楚了。如果您有任何进一步的问题/澄清,请在答复中提出:)。在


Tags: 文件csv视图数据库关系users外键userid
3条回答

Pandas数据帧试图提供类似SQL的操作。pd.read_csv两个csv,然后执行类似pandas.merge(users, replys, on='reply_id')的操作。在

http://pandas.pydata.org/pandas-docs/version/0.15.2/merging.html

首先,您将导入不同的到数据库中,而不是导入多个数据库。这似乎是混淆的第一点。您应该能够将csv文件表直接导入数据库。一旦您有了所描述的表关系,您应该能够通过执行INNER JOIN来获得必要的数据:

# User | ReplyId | ReplyText
SELECT UserId, ReplyId, ReplyText FROM users INNER JOIN Replys USING (ReplyId)

您可以执行inner合并:

假设replys来自回复.csv并且users来自用户.csv公司名称:

replys.merge(users, on='reply_id')

对于多对一关系,则可以执行left合并:

^{pr2}$

如果您来自SQL,文档中有一个有用的部分

你会这样读CSV的:

replys = pd.read_csv('Replys.csv')
users = pd.read_csv('Users.csv')

上面假设csv中的第一行包含一个标题行,并且以逗号分隔

相关问题 更多 >

    热门问题