我看到了人们在这个话题上提出的其他问题,但很多解决方案似乎都是针对一些数学运算,这些运算有特殊的内置函数来处理(比如“repeat”)。我试图将文本分成多行,但似乎不起作用。你知道吗
我有以下数据:
我想将每一行中的每个应用程序拆分为它自己的行,并保留所有其他数据。结果如下所示:
我尝试了“堆栈”或创建列表和构建新df的几种组合,但我不知道如何使用它获取所有其他列数据。你知道吗
我下面的部分解决方案只生成2列而不是全部(我有大约20列和20万行实际数据)。你知道吗
import pandas as pd
data = [[1,'vuln1','App1;App2;App3'],[1,'vuln2','App1;App2;App3'],[1,'vuln3','App1;App2;App3']]
col = ['Machine','Vulnerability','Application']
df = pd.DataFrame(data, columns=col)
new_df = pd.DataFrame(df['Application'].str.split(';').tolist(), index=df['Machine']).stack()
首先用分号扩展dataframe,然后使用
melt
函数来创建预期的输出。你知道吗你需要np.repeat和df.stack()
相关问题 更多 >
编程相关推荐