回答編集履歴
2
修正
answer
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
```python
|
|
9
9
|
import pandas as pd
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
df1 = pd.DataFrame(
|
|
12
12
|
[
|
|
13
13
|
[3320, "東1", 2, 3, "aaa"],
|
|
14
14
|
[6701, "東2", 11, 12,],
|
|
@@ -18,11 +18,12 @@
|
|
|
18
18
|
columns=["番号", "市場", "前日比", "利益", "業種"],
|
|
19
19
|
)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
df2 = pd.DataFrame(
|
|
22
22
|
[[3320, "電気"], [6701, "石油"], [4536, "通信"], [7777,]], columns=["番号", "業種"]
|
|
23
23
|
)
|
|
24
24
|
|
|
25
|
-
merged = pd.merge(
|
|
25
|
+
merged = pd.merge(df1, df2, on="番号", suffixes=("", "_y"))
|
|
26
|
+
merged["業種"].update(merged["業種_y"])
|
|
26
27
|
|
|
27
28
|
# _y で終わる列を削除
|
|
28
29
|
merged = merged[[x for x in merged.columns if not x.endswith("_y")]]
|
1
d
answer
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
列名が重複した場合、左側の列を残すとして
|
|
1
|
+
列名が重複した場合、左側の DataFrame の列を残すとして
|
|
2
2
|
|
|
3
3
|
1. `suffixes=("", "_y")` で重複する列は右側の DataFrame のほうに _y をつける
|
|
4
4
|
2. 結合したあとに _y で終わる列を削除する
|
|
@@ -27,4 +27,11 @@
|
|
|
27
27
|
# _y で終わる列を削除
|
|
28
28
|
merged = merged[[x for x in merged.columns if not x.endswith("_y")]]
|
|
29
29
|
print(merged)
|
|
30
|
-
```
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
> suffixeslist-like, default is (“_x”, “_y”)
|
|
33
|
+
A length-2 sequence where each element is optionally a string indicating the suffix to add to overlapping column names in left and right respectively. Pass a value of None instead of a string to indicate that the column name from left or right should be left as-is, with no suffix. At least one of the values must not be None.
|
|
34
|
+
|
|
35
|
+
* [pandas.DataFrame.merge — pandas 1.1.4 documentation](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html)
|
|
36
|
+
|
|
37
|
+
* [pandas - DataFrame を結合する pandas.merge の使い方 ](https://pystyle.info/pandas-merge/#outline__2_4)
|