Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用循环中最新的工作表替换dataframe中的数据_Python_Excel_Pandas - Fatal编程技术网

Python 用循环中最新的工作表替换dataframe中的数据

Python 用循环中最新的工作表替换dataframe中的数据,python,excel,pandas,Python,Excel,Pandas,我有多张相同格式的表格,希望将所有数据合并到一张表格中。每个月都有一个新的工作表,每个月都会添加一些新行,以及一些数据,可能会发生变化 范例 Sheet (May) Sheet (June) ID Text ID Text 122 A 122 A 123 ABB 123 EXX 124 SOL 124 SOL 125 NRP 所需数据帧 df

我有多张相同格式的表格,希望将所有数据合并到一张表格中。每个月都有一个新的工作表,每个月都会添加一些新行,以及一些数据,可能会发生变化

范例

Sheet (May)        Sheet (June)
ID   Text          ID  Text 
122  A             122 A
123  ABB           123 EXX
124  SOL           124 SOL
                   125 NRP
所需数据帧

 df
 ID  Text
 122 A
 123 EXX
 124 SOL
 125 NRP 
import pandas as pd
import numpy as np

df1 = pd.DataFrame({'id':[122,123,124,125],
                    'Text':['A','EXX','SOL','NRP']
                    })
df2 = pd.DataFrame({'id':[122,123,124],
    'Text':['A','ABB','SOL']})


mergeddf=pd.merge(df1,df2,how='left', on=['id','Text'])
print(mergeddf)
这是我的密码

import pandas as pd
import glob
import numpy as np

glob.glob("C:/Users/Desktop/Data/*.xlsx")

asset_data = pd.DataFrame(columns=['ID','Text'])

for f in glob.glob("C:/Users/Desktop/Data/*.xlsx"):
    df = pd.read_excel(f, usecols="B,C")
    asset_data ['Text'] = df['Text']


asset_data.describe()
asset_data.head()
asset_data.to_excel("AOMNames.xlsx")
print(asset_data)

免责声明:我完全是Python的noob

您可以使用pandas dataframe的合并功能

 df
 ID  Text
 122 A
 123 EXX
 124 SOL
 125 NRP 
import pandas as pd
import numpy as np

df1 = pd.DataFrame({'id':[122,123,124,125],
                    'Text':['A','EXX','SOL','NRP']
                    })
df2 = pd.DataFrame({'id':[122,123,124],
    'Text':['A','ABB','SOL']})


mergeddf=pd.merge(df1,df2,how='left', on=['id','Text'])
print(mergeddf)
输出

    id  Text
0   122 A
1   123 EXX
2   124 SOL
3   125 NRP

现在,您可以使用pandas函数将数据框保存为excel。

感谢您的回复,不幸的是,这并不能解决新数据框使用新信息覆盖旧数据框的情况。参见上面示例中的ID 123,其中文本从ABB更改为EXX