如何在excel中使用python将列拆分为父列下的两个子列



需要python的建议。我有一个excel表与20列的值,如12->23我需要将所有列分成两个pre和post pre将有值12和post将有值23等…并且这些列应该在它们各自的父列下面使用pandas

输入:

| Column A | 
| -------- | 
| 12 --> 23|
| 13 --> 24|

输出
| column A |
|pre| |post|
| 12| | 23 |
| 13| | 24 |

有很多列,所以我不能直接使用列名

我尝试下面的代码,它工作,如果我知道列名,但不如果我必须循环列没有他们的名字

df = pd.read_excel('path/to/excel_file.xlsx')
for col in df.columns:
new_cols = df[col].str.split(expand=True)

df[col + '_1'] = new_cols[0]
df[col + '_2'] = new_cols[1]
df.drop(columns=df.columns[:-2], inplace=True)

它不适合我

您可以使用str.split:

df[['pre', 'post']] = df['Column A'].str.split(r's*-->s*', expand=True)
print(df)
# Output
Column A pre post
0  12 --> 23  12   23
1  13 --> 24  13   24

对于多列:

data = []
for col in df.columns:
new_cols = df[col].str.split(r's*-->s*', expand=True)
if new_cols.shape[1] == 2:
df = df.drop(columns=col)
data.append(new_cols.add_prefix(col + '_'))
df = pd.concat([df, *data], axis=1)

输出:

>>> df
Column A_0 Column A_1
0         12         23
1         13         24

相关内容

  • 没有找到相关文章

最新更新