質問するログイン新規登録

回答編集履歴

2

groupby と内包表記使用コード追加

2021/10/16 05:25

投稿

lehshell
lehshell

スコア1181

answer CHANGED
@@ -1,3 +1,28 @@
1
+ groupby と内包表記使用したコードです。
2
+ ```Python
3
+ import pandas as pd
4
+
5
+ df = pd.DataFrame({'A':['test1', 'test1', 'test1', 'test2'], 'B':[10, 20, 30, 40], 'C':[0, 0, 1, 1]})
6
+ print(df)
7
+ """
8
+ A B C
9
+ 0 test1 10 0
10
+ 1 test1 20 0
11
+ 2 test1 30 1
12
+ 3 test2 40 1
13
+ """
14
+ lst = [[['A',s]]+[['B']+list(dfs['B'])]+[['C']+list(dfs['C'])] for s, dfs in df.groupby('A')]
15
+ pd.DataFrame(sum(lst,[])).to_csv('testABC.csv', header=False, index=False)
16
+ """ testABC.csv
17
+ A,test1,,
18
+ B,10,20,30
19
+ C,0,0,1
20
+ A,test2
21
+ B,40
22
+ C,1
23
+ """
24
+ ```
25
+
1
26
  test1 と test2 で分けて csv 出力するコードです。
2
27
  ```Python
3
28
  import pandas as pd

1

test1 と test2 で分けて csv 出力を追加

2021/10/16 05:25

投稿

lehshell
lehshell

スコア1181

answer CHANGED
@@ -1,3 +1,43 @@
1
+ test1 と test2 で分けて csv 出力するコードです。
2
+ ```Python
3
+ import pandas as pd
4
+
5
+ df = pd.DataFrame({'A':['test1', 'test1', 'test1', 'test2'], 'B':[10, 20, 30, 40], 'C':[0, 0, 1, 1]})
6
+ print(df)
7
+ """
8
+ A B C
9
+ 0 test1 10 0
10
+ 1 test1 20 0
11
+ 2 test1 30 1
12
+ 3 test2 40 1
13
+ """
14
+ df_1 = df[df['A'].apply(lambda x: x == 'test1')].T
15
+ df_1.iloc[0,1:] = ''
16
+ df_2 = df[df['A'].apply(lambda x: x == 'test2')].T
17
+ df_2.iloc[0,1:] = ''
18
+ df_1.to_csv("test.csv", index=False, header=None)
19
+ df_2.to_csv("test.csv", mode='a', index=False, header=None)
20
+ """ test.csv
21
+ test1,,
22
+ 10,20,30
23
+ 0,0,1
24
+ test2
25
+ 40
26
+ 1
27
+ """
28
+ df_1.to_csv("testABC.csv", header=None)
29
+ df_2.to_csv("testABC.csv", mode='a', header=None)
30
+ """ testABC.csv
31
+ A,test1,,
32
+ B,10,20,30
33
+ C,0,0,1
34
+ A,test2
35
+ B,40
36
+ C,1
37
+ """
38
+ ```
39
+
40
+ 以下、前回のコードです。
1
41
  期待していることはこういうことでしょうか?
2
42
  ```Python
3
43
  import pandas as pd