python - Pandas-根据特定条件添加新行

标签 python pandas database dataframe

我有一个特定的数据框,如下所示:

<表类=“s-表”> <标题> 所有者 姓名 col_name test_col1 test_col2 <正文> 服务 dmn_dmn 一个 1 “字符串1” 服务 dmn_dmn B 2 “字符串12” 服务 dmn_dmn C remain_constant_3 “字符串13” 服务 dmn_dmn D remain_constant_4 “字符串14” 服务 时间1 E 5 “字符串1123” 服务 时间1 F 6 “字符串123223” 服务 SAP J 1 “字符串11” 服务 SAP K 2 “字符串12” 服务 SAP D 4 “字符串14”

如果列 col_name 中不存在值“C”和“D”,则将“C”和“D”添加到其 col_name 中。最终的数据框应如下所示:

<表类=“s-表”> <标题> 所有者 姓名 col_name test_col1 test_col2 <正文> 服务 dmn_dmn 一个 1 “字符串1” 服务 dmn_dmn B 2 “字符串12” 服务 dmn_dmn C remain_constant_3 “字符串13” 服务 dmn_dmn D remain_constant_4 “字符串14” 服务 时间1 E 5 “字符串1123” 服务 时间1 F 6 “字符串123223” 服务 时间1 C remain_constant_3 “字符串13” 服务 时间1 D remain_constant_4 “字符串14” 服务 SAP J 1 “字符串11” 服务 SAP K 2 “字符串12” 服务 SAP C remain_constant_3 “字符串13” 服务 SAP D remain_constant_4 “字符串14”

编辑: 另请注意,此数据框中可能有更多列。我没有添加其他列,因为我认为这与代码无关,但后来我发现有些困惑

最佳答案

您可以使用 groupby 检查“C”和“D”是否在“col_name”列中,如果没有则添加它们。

df = pd.DataFrame([{'owner':'svc','name':'dmn_dmn','col_name':'A','test_col1':1,'test_col2':'String1'},{'owner':'svc','name':'dmn_dmn','col_name':'B','test_col1':2,'test_col2':'String12'},{'owner':'svc','name':'dmn_dmn','col_name':'C','test_col1':'remain_constant_3','test_col2':'String13'},{'owner':'svc','name':'dmn_dmn','col_name':'D','test_col1':'remain_constant_3','test_col2':'String14'},{'owner':'svc','name':'time1','col_name':'E','test_col1':5,'test_col2':'String1123'}])

for g,g_hold in df.groupby('name'):
    if 'C' not in g_hold['col_name'].tolist():
        df = df.append({'owner':'svc','name':g,'col_name':'C','test_col1':'remain_constant_3','test_col2':'String13'},ignore_index=True)
    if 'D' not in g_hold['col_name'].tolist():
        df = df.append({'owner':'svc','name':g,'col_name':'D','test_col1':'remain_constant_3','test_col2':'String14'},ignore_index=True)

print(df.sort_values(['name','col_name']))

代码最终看起来像这样。

关于python - Pandas-根据特定条件添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69467949/

相关文章:

python - Apache 403代码与python解析

python - 如何转换pandas中datetime对象的格式

python - '类型错误 : catching classes that do not inherit from BaseException is not allowed' when trying to mock an exception

python - key 错误 : 'filename' (Pandas)

python - Pandas :基于另一列的过滤器进行聚合

database - web2py:在一条语句中删除数据库中的所有表?

sql - 使我的 SSIS 包可移植 - 如何做到这一点?

php - 向数据库表中插入正确的值而不是 0

Python - 找到相似的颜色,最好的方法

python - 如何将对象注入(inject) python 中的另一个命名空间?