如何使用脚本将xlsx表格数据进行拼接?

使用脚本将xlsx表格数据进行拼接,将下图格式

img

转换为这种格式

img

这个意思?

import pandas as pd

def get_df(series, *col_name):
    series = series[1].tolist()
    d = pd.DataFrame()
    
    for j in range(3, 6):
        dict_data = {}
        tt = series[j]
        if tt:
            t =[col_name[j]+ i for i in tt.split(',')]
            len_ = len(t)
            dict_data['编码'] = [col_name[j]] * len_
            dict_data['号段'] = t
            dict_data['省份'] = [series[0] ]* len_
            dict_data['城市'] = [series[1]] * len_
            dict_data['运营商'] = ['中国广电'] * len_
            dt =  pd.DataFrame(data = dict_data)
            d = pd.concat([d, dt], axis = 0)
            
    return d
        

data = {'省份': ['安徽'] * 10,
        '城市': ['滁州', '合肥', '蚌埠', '芜湖', '淮南', '马鞍山', '安庆', '宿州', '阜阳', '亳州'],
        '城市区号': list(range(550, 559)) + [558],
        '1920': ['550,640,650', '551,560,565,569,644,651', '552, 642,652', '553,643,653', '554', '555,655,645', '556,646,656', '557,647,657', '558,568,641,648,658,659,649', '567'],
        '1921': ['550,640', '551,560,565,641', '552', '553,643', '554,569', '555', '556,646', '557,647', '648', '558,567,642,645'],
        '1922': ['', '350,401', '', '', '', '', '', '', '354,403', ''],
        }
df = pd.DataFrame(data)
print(df)
df_res = pd.DataFrame()
for dft in df.iterrows() :
    res = get_df(dft, *tuple(df.columns))
    res = res.reset_index(drop = True)
    df_res = pd.concat([df_res,res],axis=0)
df_res = df_res.reset_index(drop = True)
print(df_res)

结果

img

放到数据库里面 使用explore炸裂开 之后拼接

引用 皆我百晓生 小程序回复内容作答:

使用Python脚本可以很方便地将XLSX表格数据进行拼接。以下是使用Python的openpyxl库来实现的示例代码:

import openpyxl

# 读取第一个表格的数据
wb1 = openpyxl.load_workbook('表格1.xlsx')
sheet1 = wb1.active
data1 = []
for row in sheet1.iter_rows(values_only=True):
    data1.append(row)

# 读取第二个表格的数据
wb2 = openpyxl.load_workbook('表格2.xlsx')
sheet2 = wb2.active
data2 = []
for row in sheet2.iter_rows(values_only=True):
    data2.append(row)

# 拼接数据
merged_data = data1 + data2

# 创建新的表格并写入数据
wb3 = openpyxl.Workbook()
sheet3 = wb3.active
for row in merged_data:
    sheet3.append(row)

# 保存结果
wb3.save('拼接后的表格.xlsx')

对于JavaScript,可以使用xlsx库来读取和写入XLSX数据。以下是使用该库的示例代码:

const XLSX = require('xlsx');

// 读取第一个表格的数据
const workbook1 = XLSX.readFile('表格1.xlsx');
const worksheet1 = workbook1.Sheets[workbook1.SheetNames[0]];
const data1 = XLSX.utils.sheet_to_json(worksheet1, { header: 1 });

// 读取第二个表格的数据
const workbook2 = XLSX.readFile('表格2.xlsx');
const worksheet2 = workbook2.Sheets[workbook2.SheetNames[0]];
const data2 = XLSX.utils.sheet_to_json(worksheet2, { header: 1 });

// 拼接数据
const mergedData = data1.concat(data2);

// 创建新的表格
const workbook3 = XLSX.utils.book_new();
const worksheet3 = XLSX.utils.aoa_to_sheet(mergedData);
XLSX.utils.book_append_sheet(workbook3, worksheet3, 'Sheet1');

// 保存结果
XLSX.writeFile(workbook3, '拼接后的表格.xlsx');

以上代码示例可以将两个XLSX表格数据进行拼接,并保存为新的表格文件。请确认已安装相关库(如openpyxl,xlsx)并将文件路径修改为相应的表格文件路径。

可以用ETL工具试试

【以下回答由 GPT 生成】

我可以通过使用Python中的pandas库来实现将xlsx表格数据进行拼接的操作。下面是具体的解决方案:

  1. 首先,安装pandas库(如果没有安装的话),可以使用以下命令来安装:
pip install pandas
  1. 在Python脚本中导入pandas库:
import pandas as pd
  1. 使用read_excel函数加载两个表格数据,并将它们存储在两个pandas的DataFrame对象中:
df1 = pd.read_excel('表格1.xlsx')
df2 = pd.read_excel('表格2.xlsx')
  1. 使用merge函数将两个DataFrame对象按照姓名进行拼接,并指定on参数为姓名列的名称:
merged_df = pd.merge(df1, df2, on='姓名')
  1. 最后,使用to_excel函数将合并后的DataFrame对象保存为新的xlsx文件:
merged_df.to_excel('合并后的表格.xlsx', index=False)

完整的代码如下所示:

import pandas as pd

df1 = pd.read_excel('表格1.xlsx')
df2 = pd.read_excel('表格2.xlsx')

merged_df = pd.merge(df1, df2, on='姓名')

merged_df.to_excel('合并后的表格.xlsx', index=False)

请确保替换代码中的文件名为你实际使用的文件名,并确保两个表格中姓名列的名称相同。

如果你遇到任何问题,或者没有pandas库,我建议你通过以下方式安装它:

pip install pandas

当然,如果你没有xlsx表格文件或者没有pandas库,我无法提供精确的解决方案。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

提供参考实例,链接:https://blog.csdn.net/Deng333333555/article/details/126970817

python 用pandas就行

结合GPT给出回答如下请题主参考
要将xlsx表格数据进行拼接,你可以使用Python的pandas库。下面是一段可行的代码:

import pandas as pd

# 读取两个表格
table1 = pd.read_excel("table1.xlsx")
table2 = pd.read_excel("table2.xlsx")

# 将两个表格按照行进行连接
result = pd.concat([table1, table2], axis=0)

# 将结果输出到一个新的xlsx文件中
result.to_excel("result.xlsx", index=False)

这段代码将会将table1和table2两个表格进行纵向拼接,并将结果输出到一个新的result.xlsx文件中,该文件的格式为题目中给出的格式。


import pandas as pd
import glob

# 获取所有要拼接的 Excel 文件的文件名
file_paths = glob.glob('path_to_folder/*.xlsx')  # 替换为包含要拼接文件的文件夹路径和文件扩展名

# 创建一个空的 DataFrame,用于存储拼接后的数据
combined_data = pd.DataFrame()

# 循环遍历每个 Excel 文件,将数据拼接到 combined_data 中
for file_path in file_paths:
    df = pd.read_excel(file_path)  # 读取 Excel 文件数据
    combined_data = combined_data.append(df, ignore_index=True)  # 拼接数据到 combined_data

# 将拼接后的数据保存为一个新的 Excel 文件
combined_data.to_excel('combined_data.xlsx', index=False)  # 替换为你想要保存的文件名和路径

题主,这个问题我来替你解决,若有帮助,还望采纳,点击回答右侧采纳即可。

可以使用Python中的pandas库来完成xlsx表格数据的拼接。

以下是一个简单的脚本示例,演示了如何将两个xlsx表格按照行进行拼接,将结果输出到另一个xlsx表格中:

import pandas as pd

# 读取第一个表格
df1 = pd.read_excel('table1.xlsx')

# 读取第二个表格
df2 = pd.read_excel('table2.xlsx')

# 拼接两个表格
df_result = pd.concat([df1, df2], axis=0)

# 将结果导出到新表格
df_result.to_excel('result.xlsx', index=False)

其中,pd.read_excel函数用于读取xlsx表格数据,pd.concat函数用于拼接两个表格,axis=0参数表示按照行拼接,to_excel函数用于将结果导出到一个新的xlsx表格,index=False参数表示不导出行标(即表格中的编号)。

你可以根据自己的需求对这个脚本进行修改和优化。