python 使用Pandas将包含混合数据的一列拆分为包含2列的 Dataframe

vm0i2vca  于 2022-12-21  发布在  Python
关注(0)|答案(1)|浏览(136)

我有大约80个. txt文件,它们最初只包含1列,但这一列有两个参数,我需要将它们连接和拆分。
大概是这样的
| 色谱柱A|
| - ------|
| 细胞1|
| 单元格N|
| - -------|
| B栏|
| - -------|
| 细胞1|
| 单元格N|
我需要在一个数据集(或. txt文件)中聚合A列,然后可以从B列中删除数据。当我只有字符串时,该如何执行此操作?我尝试将文件合并为一个文件,问题是A列数据和B列数据仍然一个在另一个之上。
我试过这个:

path_dir = '/content/'
for files in os.listdir(path_dir):
  if files.endswith(".txt"):
  print(files)

new_df = pd.DataFrame()
for files in os.listdir(path_dir):
  if files.endswith(".txt"):
    DataFrame = pd.read_csv(path_dir + files)
    new_df = pd.concat([new_df, DataFrame], ignore_index = True)

代码运行良好,但问题是列仍然合并为一列,如A列/B列/A列/B列,等等。
提前感谢您的时间!

5t7ly7z5

5t7ly7z51#

当您需要将多个文件合并到一个数据集中时,通常需要使用pandals方法之一:请参考merge, join, concatenate and compare文章。
因此,步骤如下:
1.读取数据并创建2个 Dataframe ,每个 Dataframe 有1列(这是您已经拥有的)。
1.用指定的轴参数连接它们。

df = pd.DataFrame([1, 2, 3, 'ColumnB', 'b', 'c', 'd'], columns=['ColumnA'])

second_column_index = df.index[df['ColumnA'] == 'ColumnB'].tolist()[0]

df1 = df.iloc[:second_column_index, :].reset_index(drop=True)
df2 = df.iloc[second_column_index+1:, :].rename(columns={'ColumnA': 'ColumnB'}).reset_index(drop=True)
df = pd.concat([df1, df2], axis=1)

相关问题