作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一些代码,我认为这些代码可以打印文件夹中所有 CSV 文件共有的所有列名称。我使用的是内部联接,但它的作用类似于外部联接。必须有一个快速解决方案,对吧。
import glob
import pandas as pd
files = glob.glob(r'C:\my_files\*.csv')
def get_merged(files, **kwargs):
df = pd.read_csv(files[0], **kwargs)
for f in files[1:]:
df = df.merge(pd.read_csv(f, **kwargs), how='inner')
return df
print(get_merged(files))
所以,如果我有 4 个包含这些列的文件:
cola colb colc cold cole
我有 1 个包含这些列的文件:
cola colc cole
我想看看这个:
cola colc cole
最佳答案
您可以使用 pandas 或纯 Python 来计算列名的集合交集。
def get_common_columns(files, **kwargs):
"""Get set intersection of column-names of specified CSV files"""
common_columns = set(pd.read_csv(files[0], nrows=0, **kwargs).columns)
for f in files[1:]:
common_columns &= set(pd.read_csv(f, nrows=0, **kwargs).columns)
return common_columns
pd.read_csv(..., nrows=0)
然后取set(df.columns)
merge
/join
。甚至是merge(..., how='inner')
采用并集而不是列的交集。仅供引用 merge
works on column-names, whereas join
works on indices 。但他们按行加入csv
和set()
csv
读入列标题,然后使用set()
迭代地对列名称进行交集: common_columns |= set(columns_from_current_csv)
关于python - 如何打印所有 CSV 文件共有的列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57963909/
我有一个包含 28 列的数据库。第一列是代码,第二列是名称,其余是值。 public void displayData() { con.Open(); MySqlDataAdapter
Redmi 官方今天宣布了 Redmi智能电视 A 系列新品,称即将开放预约。 官方并未公布 Redmi智能电视 A 系列新品的具体信息,但给出的海报显示该系列提供五种尺寸:32 英寸、43
我是一名优秀的程序员,十分优秀!