英文:
How can I split a column that has an object onto multiple columns
问题
我可以帮你处理这个问题。你可以使用Python中的pandas
库来实现这个操作。以下是你可以使用的代码:
import pandas as pd
# 创建包含你的数据的DataFrame
data = {
'A': [1, 3],
'B': [2, 4],
'objectToBeSplit': [{0.223, 0.112, 0.441}, {0.423, 0.402, 0.593}]
}
df = pd.DataFrame(data)
# 将'objectToBeSplit'列拆分成多列
df[['C', 'D', 'E']] = pd.DataFrame(df['objectToBeSplit'].tolist(), index=df.index)
# 删除原始的'objectToBeSplit'列
df = df.drop('objectToBeSplit', axis=1)
# 打印结果
print(df)
这段代码会将你的数据转换成你想要的格式。
英文:
my columns look like this:
A B objectToBeSplit
1 2 {0.223, 0.112, 0.441}
3 4 {0.423, 0.402, 0.593}
And I would like to have it like this:
A B C D E
1 2 0.223 0.112 0.441
3 4 0.423 0.402 0.593
How can I split the objectToBeSplit column in python?
答案1
得分: 1
以下是翻译好的部分:
有几种方法可以实现这一点
# 示例DataFrame
df = pd.DataFrame({
'A': [1, 3],
'B': [2, 4],
'objectToBeSplit': ['{0.223, 0.112, 0.441}', '{0.423, 0.402, 0.593}']
})
# 分割 'objectToBeSplit' 列
df[['C', 'D', 'E']] = df['objectToBeSplit'].str.strip('{}').str.split(',', expand=True)
# 删除原始 'objectToBeSplit' 列
df = df.drop('objectToBeSplit', axis=1)
方法2:
# 通过分割 "objectToBeSplit" 列中的值创建新列 C、D、E
df[['C', 'D', 'E']] = pd.DataFrame(df['objectToBeSplit'].tolist()).applymap(float)
# 删除原始 'objectToBeSplit' 列
df = df.drop('objectToBeSplit', axis=1)
# 打印更新后的 DataFrame
print(df)
英文:
There are a couple of ways to achieve this
# Sample DataFrame
df = pd.DataFrame({
'A': [1, 3],
'B': [2, 4],
'objectToBeSplit': ['{0.223, 0.112, 0.441}', '{0.423, 0.402, 0.593}']
})
# Splitting the 'objectToBeSplit' column
df[['C', 'D', 'E']] = df['objectToBeSplit'].str.strip('{}').str.split(', ', expand=True)
# Dropping the original 'objectToBeSplit' column
df = df.drop('objectToBeSplit', axis=1)
Approach 2:
# Create new columns C, D, E by splitting the values in the "objectToBeSplit" column
df[['C', 'D', 'E']] = pd.DataFrame(df['objectToBeSplit'].tolist()).applymap(float)
# Dropping the original 'objectToBeSplit' column
df = df.drop('objectToBeSplit', axis=1)
# Print the updated DataFrame
print(df)
答案2
得分: 1
以下是代码的中文翻译:
假设有一个set
的系列:
out = (df.drop(columns='objectToBeSplit')
.join(pd.DataFrame(df['objectToBeSplit'].tolist(),
columns=['C', 'D', 'E']))
)
或者,如果你想要重新分配给相同的名称:
df = df.join(pd.DataFrame(df.pop('objectToBeSplit').tolist(),
columns=['C', 'D', 'E']))
输出:
A B C D E
0 1 2 0.223 0.112 0.441
1 3 4 0.423 0.402 0.593
可重现的输入:
df = pd.DataFrame({'A': [1, 3],
'B': [2, 4],
'objectToBeSplit': [{0.112, 0.223, 0.441},
{0.402, 0.423, 0.593}],
})
英文:
Assuming a Series of set
:
out = (df.drop(columns='objectToBeSplit')
.join(pd.DataFrame(df['objectToBeSplit'].tolist(),
columns=['C', 'D', 'E']))
)
Or, if you want to reassign to the same name:
df = df.join(pd.DataFrame(df.pop('objectToBeSplit').tolist(),
columns=['C', 'D', 'E']))
Output:
A B C D E
0 1 2 0.223 0.112 0.441
1 3 4 0.423 0.402 0.593
Reproducible input:
df = pd.DataFrame({'A': [1, 3],
'B': [2, 4],
'objectToBeSplit': [{0.112, 0.223, 0.441},
{0.402, 0.423, 0.593}],
})
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论