Python数据框条件列填充

时间:2017-08-11 21:00:23

标签: python string pandas if-statement dataframe

我需要根据不同列中的值是否包含某些字母和一些规则来填充列中的值。

例如:

这是我的起始数据框:

import pandas as pd
testdata1 = [('A', ['3c', '20b', '9']),
     ('B', ['Prod1', 'Prod2', 'Prod3']),
     ('C', ['', '', '']),
     ]
df = pd.DataFrame.from_items(testdata1)
df

这是我的目标数据框:

targetdf = [('A', ['3c', '20b', '9']),
     ('B', ['Prod1', 'Prod2', 'Prod3']),
     ('C', ['15.00', '40.00', '9']),
     ]
df2 = pd.DataFrame.from_items(targetdf)
df2

在上面的例子中,如果A列中的单元格包含'c',则C列中的相应单元格应包含A列中单元格的数字部分乘以5的结果。如果列中的单元格A包含'b',C列中的相应单元格应包含A列中单元格数字部分乘以2的结果。如果A列中的单元格不包含字母表(即它是数字),则复制C列中相应单元格的编号。

我认为解决方案将涉及使用“包含”来搜索“c”或“b”。也许是一个If声明?我不确定。我当然需要帮助提取列A中单元格的数字部分并在C列中填充正确的值。我是Python的新手。

感谢您的帮助。

0 个答案:

没有答案