質問編集履歴

3

書式の改善

2022/05/31 06:17

投稿

farinelli
farinelli

スコア61

test CHANGED
File without changes
test CHANGED
@@ -5,7 +5,23 @@
5
5
  ### 実現したいこと
6
6
 
7
7
  1つ目のファイル(wals_languages_joshi.csv)のName列と2つ目のファイル(Joshi2020_list.csv)のname列の名称が一致した場合,2つ目のファイルのscore列を1つ目に追加したいです. (下記参照)
8
- しかし,1つ目のファイルにname列とscore列が追加されたものの,中身何も伴っていない状態なのでお知恵をお借りしたいです.よろしくお願いします.
8
+ しかし,1つ目のファイルにname列とscore列が追加されたものの,エラー出たのでお知恵をお借りしたいです.よろしくお願いします.
9
+ ### エラーメッセージ
10
+ ```
11
+ Traceback (most recent call last):
12
+ File "/Users/carlobroschi_imac/Workspace/wals_and_joshi.py", line 8, in <module>
13
+ after_pd = after_pd.capitalize()
14
+ File "/opt/homebrew/lib/python3.9/site-packages/pandas/core/generic.py", line 5575, in __getattr__
15
+ return object.__getattribute__(self, name)
16
+ AttributeError: 'DataFrame' object has no attribute 'capitalize'
17
+ carlobroschi_imac@CarlonoiMac Workspace % python3 wals_and_joshi.py
18
+ Traceback (most recent call last):
19
+ File "/Users/carlobroschi_imac/Workspace/wals_and_joshi.py", line 8, in <module>
20
+ after_pd = after_pd.str.capitalize()
21
+ File "/opt/homebrew/lib/python3.9/site-packages/pandas/core/generic.py", line 5575, in __getattr__
22
+ return object.__getattribute__(self, name)
23
+ AttributeError: 'DataFrame' object has no attribute 'str'
24
+ ```
9
25
 
10
26
  ### 該当のソースコード
11
27
 
@@ -16,7 +32,7 @@
16
32
 
17
33
  before_pd = pd.read_csv('wals_languages_joshi.csv')
18
34
  after_pd = pd.read_csv('Joshi2020_list.csv')
19
-
35
+ after_pd = after_pd.str.capitalize()
20
36
  f=pd.merge(before_pd, after_pd, left_on='Name', right_on='name', how='outer')
21
37
 
22
38
  f.to_csv('result.csv',index=False, encoding='utf-8')

2

結果の追加

2022/05/31 06:00

投稿

farinelli
farinelli

スコア61

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,16 @@
30
30
  Arabic (Chadian),Afro-Asiatic,,Semitic,Africa,shu
31
31
  Abidji,Niger-Congo,,Kwa,Africa,abi
32
32
  ```
33
+ ### 現在の出力
34
+ ```result.csv
35
+ Name,Family,Subfamily,Genus,Macroarea,ISO639P3code,name,score
36
+ Arapesh (Abu),Torricelli,,Kombio-Arapesh,,,,
37
+ Aari,Afro-Asiatic,Omotic,South Omotic,Africa,aiw,,
38
+ Abau,Sepik,,Upper Sepik,Papunesia,aau,,
39
+ Arabic (Chadian),Afro-Asiatic,,Semitic,Africa,shu,,
40
+ Abidji,Niger-Congo,,Kwa,Africa,abi,,
41
+ ```
42
+
33
43
  ### 使用ファイル
34
44
  ```wals_languages_joshi.csv
35
45
  Name,Family,Subfamily,Genus,Macroarea,ISO639P3code

1

コードの改善

2022/05/31 05:52

投稿

farinelli
farinelli

スコア61

test CHANGED
File without changes
test CHANGED
@@ -5,24 +5,7 @@
5
5
  ### 実現したいこと
6
6
 
7
7
  1つ目のファイル(wals_languages_joshi.csv)のName列と2つ目のファイル(Joshi2020_list.csv)のname列の名称が一致した場合,2つ目のファイルのscore列を1つ目に追加したいです. (下記参照)
8
- お知恵をお借りしたいです.よろしくお願いします.
8
+ しかし,1つ目のファイルにname列とscore列が追加されたものの,中身が何も伴っていない状態なので,お知恵をお借りしたいです.よろしくお願いします.
9
-
10
- ### エラーメッセージ
11
-
12
- ```
13
- Traceback (most recent call last):
14
- File "/Users/carlobroschi_imac/Workspace/wals_and_joshi.py", line 8, in <module>
15
- f=pd.merge(before_pd, after_pd,
16
- File "/opt/homebrew/lib/python3.9/site-packages/pandas/core/reshape/merge.py", line 107, in merge
17
- op = _MergeOperation(
18
- File "/opt/homebrew/lib/python3.9/site-packages/pandas/core/reshape/merge.py", line 700, in __init__
19
- ) = self._get_merge_keys()
20
- File "/opt/homebrew/lib/python3.9/site-packages/pandas/core/reshape/merge.py", line 1097, in _get_merge_keys
21
- right_keys.append(right._get_label_or_level_values(rk))
22
- File "/opt/homebrew/lib/python3.9/site-packages/pandas/core/generic.py", line 1840, in _get_label_or_level_values
23
- raise KeyError(key)
24
- KeyError: 'Name'
25
- ```
26
9
 
27
10
  ### 該当のソースコード
28
11
 
@@ -34,8 +17,7 @@
34
17
  before_pd = pd.read_csv('wals_languages_joshi.csv')
35
18
  after_pd = pd.read_csv('Joshi2020_list.csv')
36
19
 
37
- f=pd.merge(before_pd, after_pd,
38
- on=['Name', 'name'], how='outer')
20
+ f=pd.merge(before_pd, after_pd, left_on='Name', right_on='name', how='outer')
39
21
 
40
22
  f.to_csv('result.csv',index=False, encoding='utf-8')
41
23
  ```