【发布时间】:2019-03-23 14:20:27
【问题描述】:
我有一个带有两个街道地址列的 pandas 数据框。我想检查每一列中的值,看看它是否以数字开头。然后我想创建第三列,它返回以数字开头的字段值。
考虑以下df:
df = pd.DataFrame({"A":["123 Fake St","456 Fake St","Crown Building","Other Building"],
"B":["Dorm","12 Dorm","34 Dorm","Other Dorm"]})
如果两个字段或两个字段都不是以数字开头,那么它应该返回 A 列。所以第三列是:
123 Fake St
456 Fake St
34 Dorm
Other Building
我尝试使用 np.where:
df['C'] = np.where(df['A'][0].isdigit(), df['A'], df['B'])
我猜如果两者都不以数字开头,则不考虑返回“A”。声明的 .isdigit 部分似乎无论如何都不起作用。
感谢您的帮助!
【问题讨论】:
-
创建一个函数并应用于数据框stackoverflow.com/questions/21702342/…
-
df['A'].str[0].str.isdigit()
标签: python python-3.x pandas if-statement