如何将每行列表元素插入Python数据帧
我有这3个变量(列表列表,距离除外): 我想使用以下代码将它们按行插入数据帧:如何将每行列表元素插入Python数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有这3个变量(列表列表,距离除外): 我想使用以下代码将它们按行插入数据帧: import pandas as pd def make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number): print(song_number) df = pd.DataFrame(columns=('unique-pitch', 'pitch-class', 'distance'))
import pandas as pd
def make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number):
print(song_number)
df = pd.DataFrame(columns=('unique-pitch', 'pitch-class', 'distance'))
for i in range(song_number):
df.loc[i] = pd.Series({'unique-pitch': unique_pitch_result, 'pitch-class': pitch_class_result, 'distance': distance_result})
return df
我希望得到这样的结果:
unique-pitch pitch-class distance
0 [0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64] ['0', 'F3', 'F#3/Gb3', 'G3', 'G#3/Ab3', 'A3', 'A#3/Bb3', 'B3', 'C4', 'C#4/Db4', 'D4', 'D#4/Eb4', 'E4'] 2020.0
1 [0, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58] ['0', 'C3', 'C#3/Db3', 'D3', 'E3', 'F3', 'F#3/Gb3', 'G3', 'G#3/Ab3', 'A3', 'A#3/Bb3'] 611.0
2 [0, 43, 44, 45, 46, 47, 48, 49, 50] ['0', 'G2', 'G#2/Ab2', 'A2', 'A#2/Bb2', 'B2', 'C3', 'C#3/Db3', 'D3'] 1782.0
但我得到的却是:
unique-pitch ... distance
0 [[0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 6... ... [2020.0, 611.0, 1782.0]
1 [[0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 6... ... [2020.0, 611.0, 1782.0]
2 [[0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 6... ... [2020.0, 611.0, 1782.0]
我应该如何修复函数
make_dataframe
?对于通过变量获取子列表I
,您需要索引唯一的\u pitch_结果
和pitch_class_结果
:
def make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number):
print(song_number)
df = pd.DataFrame(columns=('unique-pitch', 'pitch-class', 'distance'))
for i in range(song_number):
df.loc[i] = pd.Series({'unique-pitch': unique_pitch_result[i], 'pitch-class': pitch_class_result[i], 'distance': distance_result[i]})
return df
print (make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number))
非循环备选方案和通过所有列表:
def make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number):
print(song_number)
return pd.DataFrame({'unique-pitch': unique_pitch_result,
'pitch-class': pitch_class_result,
'distance': distance_result})
print (make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number))
unique-pitch \
0 [0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63...
1 [0, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58]
2 [0, 43, 44, 45, 46, 47, 48, 49, 50]
pitch-class distance
0 [0, F3, F#3 / Gb3, G3, G#3 / Ab3, A3, A#3 / Bb... 2020.0
1 [0, C3, C#3 / Db3, D3, E3, F3, F#3 / Gb3, G3, ... 611.0
2 [0, G2, G#2 / Ab2, A2, A#2 / Bb2, B2, C3, C#3 ... 1782.0
距离也应该分开,但现在我知道怎么做了。非常感谢。
def make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number):
print(song_number)
return pd.DataFrame({'unique-pitch': unique_pitch_result,
'pitch-class': pitch_class_result,
'distance': distance_result})
print (make_dataframe(unique_pitch_result, pitch_class_result, distance_result, song_number))
unique-pitch \
0 [0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63...
1 [0, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58]
2 [0, 43, 44, 45, 46, 47, 48, 49, 50]
pitch-class distance
0 [0, F3, F#3 / Gb3, G3, G#3 / Ab3, A3, A#3 / Bb... 2020.0
1 [0, C3, C#3 / Db3, D3, E3, F3, F#3 / Gb3, G3, ... 611.0
2 [0, G2, G#2 / Ab2, A2, A#2 / Bb2, B2, C3, C#3 ... 1782.0