groupby と内包表記使用したコードです。
Python
1import pandas as pd
2
3df = pd.DataFrame({'A':['test1', 'test1', 'test1', 'test2'], 'B':[10, 20, 30, 40], 'C':[0, 0, 1, 1]})
4print(df)
5"""
6 A B C
70 test1 10 0
81 test1 20 0
92 test1 30 1
103 test2 40 1
11"""
12lst = [[['A',s]]+[['B']+list(dfs['B'])]+[['C']+list(dfs['C'])] for s, dfs in df.groupby('A')]
13pd.DataFrame(sum(lst,[])).to_csv('testABC.csv', header=False, index=False)
14""" testABC.csv
15A,test1,,
16B,10,20,30
17C,0,0,1
18A,test2
19B,40
20C,1
21"""
test1 と test2 で分けて csv 出力するコードです。
Python
1import pandas as pd
2
3df = pd.DataFrame({'A':['test1', 'test1', 'test1', 'test2'], 'B':[10, 20, 30, 40], 'C':[0, 0, 1, 1]})
4print(df)
5"""
6 A B C
70 test1 10 0
81 test1 20 0
92 test1 30 1
103 test2 40 1
11"""
12df_1 = df[df['A'].apply(lambda x: x == 'test1')].T
13df_1.iloc[0,1:] = ''
14df_2 = df[df['A'].apply(lambda x: x == 'test2')].T
15df_2.iloc[0,1:] = ''
16df_1.to_csv("test.csv", index=False, header=None)
17df_2.to_csv("test.csv", mode='a', index=False, header=None)
18""" test.csv
19test1,,
2010,20,30
210,0,1
22test2
2340
241
25"""
26df_1.to_csv("testABC.csv", header=None)
27df_2.to_csv("testABC.csv", mode='a', header=None)
28""" testABC.csv
29A,test1,,
30B,10,20,30
31C,0,0,1
32A,test2
33B,40
34C,1
35"""
以下、前回のコードです。
期待していることはこういうことでしょうか?
Python
1import pandas as pd
2
3df = pd.DataFrame({'A':['test1', 'test1', 'test1', 'test2'], 'B':[10, 20, 30, 40], 'C':[0, 0, 1, 1]})
4print(df)
5"""
6 A B C
70 test1 10 0
81 test1 20 0
92 test1 30 1
103 test2 40 1
11"""
12df2 = pd.concat([df.T, df.T])
13print(df2)
14"""
15 0 1 2 3
16A test1 test1 test1 test2
17B 10 20 30 40
18C 0 0 1 1
19A test1 test1 test1 test2
20B 10 20 30 40
21C 0 0 1 1
22"""
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/15 14:42