我在数据框中有这些数据,代码列有几个值并且是对象数据类型。
我想按以下方式拆分行
我试图通过使用来更改数据类型
df['Code'] = df['Code'].astype(str)
然后尝试拆分逗号并根据 ID(唯一)重置索引,但我只得到两个列值。我需要整个数据集。
df = (pd.DataFrame(df.Code.str.split(',').tolist(), index=df.ID).stack()).reset_index([0, 'ID'])
df.columns = ['ID', 'Code']
有人可以帮我吗?我不明白如何扭曲这段代码。
附上设置代码:
import pandas as pd
x = {'ID': ['1','2','3','4','5','6','7'],
'A': ['a','b','c','a','b','b','c'],
'B': ['z','x','y','x','y','z','x'],
'C': ['s','d','w','','s','s','s'],
'D': ['m','j','j','h','m','h','h'],
'Code': ['AB,BC,A','AD,KL','AD,KL','AB,BC','A','A','B']
}
df = pd.DataFrame(x, columns = ['ID', 'A','B','C','D','Code'])
df
答案 0 :(得分:2)
您可以先在逗号 public Arc(Arc source, float radius)
{
this = source; // Copy `source` into `this`
this.Radius = radius; // Then overwrite `this.Radius`
}
上拆分 Code
列,然后将其拆分为 ,
以获得所需的输出。
explode
输出:
df['Code']=df['Code'].str.split(',')
df=df.explode('Code')
如果需要,您可以用 NaN 替换空字符串