【发布时间】:2023-02-21 20:55:14
【问题描述】:
我想问你一个简单的问题。
也就是说,我有一个数据框,其中一列包含多行,如下所示:
10712 99883522686 [10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9]
10714 9998240348 [10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9]
10715 99997364349 [10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9]`
我想重新设计这个列表,仅当第三个元素是数字 12 时才从它的第三个元素开始,就像这里的这个例子一样,这样我在所有行中都会得到一个看起来像这样的列表。
10712 99883522686 [12, 1, 2, 3, 4, 5, 6, 7, 8, 9]
10714 9998240348 [12, 1, 2, 3, 4, 5, 6, 7, 8, 9]
10715 99997364349 [12, 1, 2, 3, 4, 5, 6, 7, 8, 9]`
谢谢。
def transform_row(row):
if row["months"][2] == 12:
new_list = row["months"][2:] + row["months"][:2]
else:
new_list = row["months"]
return new_list
df["months"] = df.apply(transform_row, axis=1)
print(df)
``
【问题讨论】: