在同一列中多次复制相同的元素,Pandas
Copy same element multiple times in the same column, Pandas
我正在尝试复制列的元素 3 次。
即
来自
DataFrame = [A, B, C]
至
DataFrame = [A, A, A, B, B, B, C, C, C]
DataFrame -> DataFrame
这可以通过一些 lambda 函数实现吗?
您可以执行此连接数据帧:
import pandas as pd
df = pd.DataFrame({"Values": ["A", "B", "C"]})
# output
Values
0 A
1 B
2 C
pd.concat([df, df, df]).sort_values("Values")
# output
Values
0 A
0 A
0 A
1 B
1 B
1 B
2 C
2 C
2 C
或者如果你出于某种原因想使用apply,你可以用那种奇怪的方式来做到这一点:
import itertools
pd.DataFrame(
itertools.chain(*df.Values.apply(lambda x: 3 * [x]).to_list()),
columns=df.columns
)
# output
Values
0 A
1 A
2 A
3 B
4 B
5 B
6 C
7 C
8 C
我正在尝试复制列的元素 3 次。
即
来自 DataFrame = [A, B, C]
至 DataFrame = [A, A, A, B, B, B, C, C, C]
DataFrame -> DataFrame
这可以通过一些 lambda 函数实现吗?
您可以执行此连接数据帧:
import pandas as pd
df = pd.DataFrame({"Values": ["A", "B", "C"]})
# output
Values
0 A
1 B
2 C
pd.concat([df, df, df]).sort_values("Values")
# output
Values
0 A
0 A
0 A
1 B
1 B
1 B
2 C
2 C
2 C
或者如果你出于某种原因想使用apply,你可以用那种奇怪的方式来做到这一点:
import itertools
pd.DataFrame(
itertools.chain(*df.Values.apply(lambda x: 3 * [x]).to_list()),
columns=df.columns
)
# output
Values
0 A
1 A
2 A
3 B
4 B
5 B
6 C
7 C
8 C