有哪位大神可以指导指导
# coding=utf-8# import pandas as pd
# may_df = pd.read_csv('may.csv')
# june_df = pd.read_csv('june.csv')
#
# merged = pd.merge(may_df,june_df,on="states",how = 'outer',suffixes=('_ahead','behind'),indicator=True)
# # find change
# changed_rows = merged!='both']
# # find new lines
# new_rows = merged=='right_only']
# print(new_rows)
#
import pandas as pd
from tqdm import tqdm
# # 读取两张表
# df1 = pd.read_csv('may.csv')
# df2 = pd.read_csv('june.csv')
#
# # 筛选出location、project_name、building、unit、high和room相同的行
# cols = ['location', 'project_name', 'building', 'unit', 'high', 'room']
# df1_grouped = df1.groupby(cols).first().reset_index()
# df2_grouped = df2.groupby(cols).first().reset_index()
#
# # 将df1_grouped和df2_grouped合并,并比较states列的值
# df = pd.DataFrame(columns=df1.columns)
# for index, row1 in tqdm(df1_grouped.iterrows(), total=len(df1_grouped)):
# for _, row2 in df2_grouped.iterrows():
# if row1['location'] == row2['location'] and \
# row1['project_name'] == row2['project_name'] and \
# row1['building'] == row2['building'] and \
# row1['unit'] == row2['unit'] and \
# row1['high'] == row2['high'] and \
# row1['room'] == row2['room'] and \
# row1['states'] != row2['states']:
# df = df.append(row1)
#
# # 输出结果
# print(df)
import pandas as pd
from tqdm import tqdm
# 读取两张表
df1 = pd.read_excel('D:\一介书生资料库\爬虫:八爪鱼\各市县整体市场\shujuchuli\七月三亚.xlsx')
df2 = pd.read_excel('D:\一介书生资料库\爬虫:八爪鱼\各市县整体市场\shujuchuli\八月三亚.xlsx')
# 筛选出location、project_name、building、unit、high和room相同的行,并选择指定的列
cols = ['区域', '项目名称', '楼盘', '单元', '楼层', '房间', '建筑面积', '房型', '挂牌清水价', '挂牌装修价']
df1_grouped = df1.groupby(cols).first().reset_index()
df2_grouped = df2.groupby(cols).first().reset_index()
# 合并两张表格
df_merged = pd.concat()
# 找到发生变化的行
df_duplicates = df_merged
df_changed = df_duplicates != df_duplicates['状态']]
# 输出结果
df_changed.to_excel('D:\pydata\data.xlsx', index=False)
print(df_changed)
D:\PythonProject\pythonProject\Scripts\python.exe E:\qycache\xuexi\pythonProject\房地产\process(版本2.3).py
D:\PythonProject\pythonProject\lib\site-packages\numpy\_distributor_init.py:30: UserWarning: loaded more than 1 DLL from .libs:
D:\PythonProject\pythonProject\lib\site-packages\numpy\.libs\libopenblas.EL2C6PLE4ZYW3ECEVIV3OXXGRN2NRFM2.gfortran-win_amd64.dll
D:\PythonProject\pythonProject\lib\site-packages\numpy\.libs\libopenblas64__v0.3.21-gcc_10_3_0.dll
warnings.warn("loaded more than 1 DLL from .libs:"
Empty DataFrame
Columns: [区域, 项目名称, 楼盘, 单元, 楼层, 房间, 建筑面积, 房型, 挂牌清水价, 挂牌装修价, 房屋用途, 产品类型, 状态, 商品房预售许可证, 发证日期]
Index: []
进程已结束,退出代码0
这段代码的目的是比较两个数据文件的内容,并找出其中发生变化的行。代码中使用了pandas库来处理数据。
首先,代码读取了两个Excel文件,分别为 D:\一介书生资料库\爬虫:八爪鱼\各市县整体市场\shujuchuli\七月三亚.xlsx 和 D:\一介书生资料库\爬虫:八爪鱼\各市县整体市场\shujuchuli\八月三亚.xlsx 。
然后,代码对两个文件进行了数据处理。首先,根据指定的列('区域', '项目名称', '楼盘', '单元', '楼层', '房间')对两个文件进行分组,并选择了指定的列。接着,将两个分组后的数据合并为一个数据框。
最后,代码找到了发生变化的行。首先,找到了在合并后的数据框中重复出现的行,然后根据'状态'列的值是否不相等来筛选出发生变化的行。
最后,代码将发生变化的行保存到了 D:\pydata\data.xlsx 文件,并输出了发生变化的行。
需要注意的是,代码中使用了 tqdm 库来显示进度条。如果没有安装该库,可以使用 pip install tqdm 命令进行安装。 首先,让我们一起来看看你提供的代码。这是一个用于处理两个数据表并找到变化的行的Python脚本。
在代码的开头,你导入了pandas和tqdm库。然后,你读取了两个CSV文件(may.csv和june.csv)或两个Excel文件(七月三亚.xlsx和八月三亚.xlsx)作为数据源。
接下来,你使用pd.merge函数将两个数据表按照"states"列进行合并,使用outer连接方式,并添加了一个指示器列"_merge"来标记合并结果。
然后,你通过筛选出"_merge"列值为"right_only"的行来找到新的行。
最后,你打印出新行的结果。
根据你的描述,我了解到你想要处理两个数据表,并找到发生变化的行。代码中存在一些问题,我将为你提供修复后的代码。
import pandas as pd
from tqdm import tqdm
# 读取两张表
df1 = pd.read_excel('D:\一介书生资料库\爬虫:八爪鱼\各市县整体市场\shujuchuli\七月三亚.xlsx')
df2 = pd.read_excel('D:\一介书生资料库\爬虫:八爪鱼\各市县整体市场\shujuchuli\八月三亚.xlsx')
# 筛选出location、project_name、building、unit、high和room相同的行,并选择指定的列
cols = ['区域', '项目名称', '楼盘', '单元', '楼层', '房间', '建筑面积', '房型', '挂牌清水价', '挂牌装修价']
df1_grouped = df1.groupby(cols).first().reset_index()
df2_grouped = df2.groupby(cols).first().reset_index()
# 合并两张表格
df_merged = pd.concat()
# 找到发生变化的行
df_duplicates = df_merged
df_changed = df_duplicates != df_duplicates['状态']]
# 输出结果
df_changed.to_excel('D:\pydata\data.xlsx', index=False)
print(df_changed)
请注意,你需要将文件路径中的反斜杠\替换为正斜杠/或使用双反斜杠\\进行转义,以确保路径正确。此外,如果你使用的是CSV文件而不是Excel文件,请使用pd.read_csv而不是pd.read_excel来读取文件。
修复后的代码会将两个数据表按照指定的列进行合并,并找到发生变化的行。最后,它将结果保存到一个名为"data.xlsx"的Excel文件中,并打印出发生变化的行。
希望这可以帮助到你!如果有任何进一步的问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:} Mike_python小 发表于 2023-11-3 11:57
首先,让我们一起来看看你提供的代码。这是一个用于处理两个数据表并找到变化的行的Python脚本。
在代码的 ...
导出来只有表头 没有内容 isdkz 发表于 2023-11-3 11:56
这段代码的目的是比较两个数据文件的内容,并找出其中发生变化的行。代码中使用了pandas库来处理数据。
...
导出来是空值
只有表头 没有内容
页:
[1]