【发布时间】:2017-08-11 21:00:22
【问题描述】:
我需要根据不同列中的值是否包含某些字母和某些规则来填充列中的值。
例如:
这是我的起始数据框:
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 还很陌生。
感谢您的帮助。
【问题讨论】:
标签: python string pandas if-statement dataframe