有没有一种快速的方法来对 PANDAS 中的列进行子集化?
Is there a quick way to subset columns in PANDAS?
我正在尝试设置一个 PANDAS 项目,我可以用它来比较 return excel 和 csv 文件随时间变化的差异。目前我将 excel/csv 文件加载到 pandas 中并为它们分配一个版本列。我为它们分配了一个“版本”列,因为在我的最后一步中,我希望程序为我创建一个只包含“新”版本文件中更改内容的文件,这样我就不必更新整个数据库,只需更新数据已更改的点。
old = pd.read_excel(landdata20201122.xlsx')
new = pd.read_excel(landdata20210105.xlsx')
old['version'] = "old"
new['version'] = "new"
我将工作表合并为一个,然后根据原始文件中的所有列删除重复的行。我必须对数据进行子集化,因为如果程序查看我添加的版本列,它不会被视为重复行。声明如下
df2 = df1.drop_duplicates(subset=["UWI", "Current DOI Partners", "Encumbrances", "Lease Expiry Date", "Mineral Leases", "Operator", "Attached Land Rights", "Surface Leases"])
df2.shape
我想知道是否有更快的方法来对数据进行子集化,基本上是我目前设置的方式,我必须列出每个列标题。我的一些工作表有 100 多列,所以当我只希望它否定 1 列时,工作量很大。有没有一种方法可以填充所有列标题并删除我不想查看的列标题?或者有没有办法在删除重复项命令中输入我不想比较的列,而不是输入除一列以外的所有列?
如果我可以只列出我不想比较的列,我将能够对我正在处理的更多数据使用相同的脚本,因为我不必编辑 drop_duplicates 每次比较表格时的声明。
感谢任何帮助,提前致谢!
如果我理解得很好:
- 将 headers 存储在列表中。
- 手动删除不需要的名称。
- 在
drop_duplicates()
的子集中放置列表。
如果您要删除的列多于要保留的列,请在列表中手动添加所有需要的列。
有了清单,就不用每次都写了。
如何迭代列表:
list=['first', 'second', 'third']
for i in list:
print(i)
# Output: 'first', 'second', 'third'
我正在尝试设置一个 PANDAS 项目,我可以用它来比较 return excel 和 csv 文件随时间变化的差异。目前我将 excel/csv 文件加载到 pandas 中并为它们分配一个版本列。我为它们分配了一个“版本”列,因为在我的最后一步中,我希望程序为我创建一个只包含“新”版本文件中更改内容的文件,这样我就不必更新整个数据库,只需更新数据已更改的点。
old = pd.read_excel(landdata20201122.xlsx')
new = pd.read_excel(landdata20210105.xlsx')
old['version'] = "old"
new['version'] = "new"
我将工作表合并为一个,然后根据原始文件中的所有列删除重复的行。我必须对数据进行子集化,因为如果程序查看我添加的版本列,它不会被视为重复行。声明如下
df2 = df1.drop_duplicates(subset=["UWI", "Current DOI Partners", "Encumbrances", "Lease Expiry Date", "Mineral Leases", "Operator", "Attached Land Rights", "Surface Leases"])
df2.shape
我想知道是否有更快的方法来对数据进行子集化,基本上是我目前设置的方式,我必须列出每个列标题。我的一些工作表有 100 多列,所以当我只希望它否定 1 列时,工作量很大。有没有一种方法可以填充所有列标题并删除我不想查看的列标题?或者有没有办法在删除重复项命令中输入我不想比较的列,而不是输入除一列以外的所有列?
如果我可以只列出我不想比较的列,我将能够对我正在处理的更多数据使用相同的脚本,因为我不必编辑 drop_duplicates 每次比较表格时的声明。
感谢任何帮助,提前致谢!
如果我理解得很好:
- 将 headers 存储在列表中。
- 手动删除不需要的名称。
- 在
drop_duplicates()
的子集中放置列表。
如果您要删除的列多于要保留的列,请在列表中手动添加所有需要的列。 有了清单,就不用每次都写了。
如何迭代列表:
list=['first', 'second', 'third']
for i in list:
print(i)
# Output: 'first', 'second', 'third'