pandas 如何创建一个带有组合列名的空 Dataframe ?

f0brbegy  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(158)

我尝试从一个.xlsx文件创建一个 Dataframe ,该文件将一个单元格中的字符串转换为多个排列在单个单元格中的字符串。例如,我有一个 Dataframe ,如下所示:列名称1列名称2 [A;B;C]、[D;E]、[[F;G;H],[I;J]]]]我的意图是创建5列:“column_name1_1”、“column_name1_2”、“column_name1_3”、“column_name2_1”、“column_name2_2”。列名可以自动化吗?创建 Dataframe 后,我的意图是在第一列中输入数据“A”,在第二列中输入“B”,以此类推。“F”也将进入第一列,但在“A”和“G”下将进入第二列,但在“B”下。
有没有什么方法可以达到这个结果呢?对我来说,不创建列的名称,而是以我上面提到的方式分发信息也会很有用。
我创建了这个简单的代码,将字母分成列表:

for headers in df.columns:
    for cells in df[headers]:
        cells = str(cells)
        sublist = cells.split(character)
        print(sublist)

我是第一次使用Pandas,这是我的第一个帖子。欢迎任何建议。非常感谢大家!

hvvq6cgz

hvvq6cgz1#

您可以使用Pandas来实现这一点。
给你!

import pandas as pd

# Load the .xlsx file into a Pandas dataframe
df = pd.read_excel("file.xlsx")

# Create a new dataframe to store the split values
split_df = pd.DataFrame()

# Loop through the columns
for headers in df.columns:
    # Loop through the cells in each column
    for cells in df[headers]:
        cells = str(cells)
        sublist = cells.split(";")
        # Get the number of elements in the sublist
        num_elements = len(sublist)
        # Create new columns in the split_df dataframe for each element in the sublist
        for i in range(num_elements):
            column_name = headers + "_" + str(i+1)
            split_df[column_name] = sublist[i]

# Reset the index of the split_df dataframe
split_df = split_df.reset_index(drop=True)

# Save the split_df dataframe to a new .xlsx file
split_df.to_excel("split_file.xlsx", index=False)

这段代码会将. xlsx文件中的值拆分到一个新的 Dataframe 中,每个值都分隔到自己的列中。新列将根据原始列名和值在列表中的位置命名。然后,新 Dataframe 将保存到一个名为"split_file. xlsx"的新. xlsx文件中。

相关问题